1. 程式人生 > >PHP錯誤型別及遮蔽方法

PHP錯誤型別及遮蔽方法

程式只要在執行,就免不了會出現錯誤,錯誤很常見,比如Error,Notice,Warning等等

1. 注意(Notices)
這些都是比較小而且不嚴重的錯誤,比如去訪問一個未被定義的變數。通常,這類的錯誤是不提示給使用者的,但有時這些錯誤會影響到執行的結果。

2. 警告(Warnings)
這就是稍微嚴重一些的錯誤了,比如想要包含include()一個本身不存在的檔案。這樣的錯誤資訊會提示給使用者,但不會導致程式終止執行。

3. 致命錯誤(Fatal errors)
這些就是嚴重的錯誤,比如你想要初始化一個根本不存在的類的物件,或呼叫一個不存在的函式,這些錯誤會導致程式停止執行,PHP也會把這些錯誤展現給使用者。
 

不同的錯誤種類包括:

E_ERROR:通常會顯示出來,也會中斷程式執行。
E_WARNING:通常都會顯示出來,但不會中斷程式的執行。
E_NOTICE:在指令碼正常執行下發生的程式碼錯誤。
E_PARSE:語法解析錯誤。

E_CORE_ERROR:在PHP啟動時發生的致命錯誤。
E_CORE_WARNING:報告在PHP啟動時發生的非致命性錯誤。
E_COMPILE_ERROR:編譯時發生的致命錯誤,指出指令碼的錯誤。

E_USER_ERROR:使用者產生的錯誤資訊。
E_USER_WARNING:使用者產生的警告資訊。
E_USER_NOTICE:使用者引發的注意訊息。

E_STRICT:編碼標準化警告,執行時發生的錯誤。
E_RECOVERABLE_ERROR:接近致命的執行時錯誤,若未被捕獲則視同E_ERROR。
E_ALL:捕獲所有的錯誤和警告。

 

遮蔽PHP錯誤提示

方法一:在有可能出錯的函式前加@,然後or die("") 
如: 
@mysql_connect(...) or die("Database Connect Error")

方法二:編輯php.ini ,查詢"display_errors =" ,將“=”後面的值改為"off。

方法三:在php指令碼前加error_reporting(0),遮蔽所有錯誤提示。
其中,error_reporting 配置錯誤資訊回報的等級。

語法:int error_reporting(int [level]);
返回值:整數
函式種類:PHP 系統功能


相關推薦

PHP錯誤型別遮蔽方法

程式只要在執行,就免不了會出現錯誤,錯誤很常見,比如Error,Notice,Warning等等 1. 注意(Notices) 這些都是比較小而且不嚴重的錯誤,比如去訪問一個未被定義的變數。通常,這類的錯誤是不提示給使用者的,但有時這些錯誤會影響到執行的結果。2. 警告

淺談php錯誤提示查錯方法

error 設置斷點 bugs notice -- 語法 打開 tin 開始 php有哪幾種錯誤提示 1.notice : 註意 2.waring : 警告 3.error : 錯誤 PHP中都有哪幾種查錯方法? 1、語法檢查--php配置文件裏,把錯誤顯示選項都打開或者代

php:Illegal offset type in XXX錯誤原因解決方法

php提示錯誤:Illegal offset type in XXX,導致這個錯誤的原因是不能使用例項化的物件來作為陣列的索引,請檢查陣列變數的鍵名是否使用了例項化的物件變數或陣列。 我遇到的錯誤就是因為呼叫陣列的時候,陣列變數的鍵名使用了陣列。 程式碼如下: //格式

服務器出現 HTTP 400、404、500、502 錯誤原因解決方法

服務器出現 http 400、404基本涵蓋了所有問題HTTP 400 – 請求無效HTTP 401.1 – 未授權:登錄失敗HTTP 401.2 – 未授權:服務器配置問題導致登錄失敗HTTP 401.3 – ACL 禁止訪問資源HTTP 401.4 – 未授權:授權被篩選器拒絕HTTP 401.5 – 未

windows server,nginx安裝,配置,運行nodeJS後端的web項目的實現,以及錯誤分析解決方法

lease args app clu ali real-ip directory 很多 命令 如果對nodeJS的後端的系統,源代碼在github上,https://github.com/saucxs/nodeJSBlog ,如果覺得可以,請請star並fork項目 項目

C++的error C2668: 'pow' : ambiguous call to overloaded function錯誤原因解決方法

1、錯誤程式碼 #include <iostream> #include <cmath> using namespace std; int main() { float a; a = pow(10, 2); cout<<"pow(10,2) =

Python中的錯誤處理除錯方法簡介

方法一: 最方便的方法是在互動執行時將可能存在錯誤的變數直接打印出來,通過檢視列印資訊來調整程式; 方法二:try機制 try: print('try...') r = 10 / 0 print('result:', r) except ZeroDivisionE

js所有資料型別判斷方法

JavaScript所有資料型別及判斷方法 型別名稱 例項 判斷方法 字串 “大家好” typeof “大家好” == “string”  //輸出true

【go語言 socket程式設計系列】IPAddr型別ResolveIPAddr方法

【型別定義】 IPAddr型別本質上是一個IP型別,原始碼定義檔案:golang/src/pkg/net/iprawsock.go 常用方法會返回一個*IPAddr的資料。 package net // IPAddr represents the address of

js資料型別檢測方法

###一、資料型別檢測方法 在js中,有四種用於檢測資料型別的方式,分別是: typeof  用來檢測資料型別的運算子 instanceof    檢測一個例項是否屬於某個類 constructor   建構函式 Object.prototype.toStrin

關於iOS分享引用"libSocialQQ.a(UMSocialQQHandler.o)"報i386錯誤原因解決方法

應用中整合QQ分享,匯入libSocialQQ.a庫,真機執行沒有問題,但是不少同學在模擬器上執行時,往往會報"libSocialQQ.a(UMSocialQQHandler.o)"i386錯誤;相信原因大家都通過網上查閱資料得知,這是因為最新版本的QQ SDK不再支援I386框架,但是真機執行沒有

python 入門之 – 字串型別操作方法(十五)

在之前學基本資料型別的時候知道了,在 python 中,字串 是一個有序的字元的集合,用於儲存和表示基本的文字資訊,由一對 單引號 或 雙引號 又或者是 三引號 包含著,但是 字串 有兩個特點: 1、有序 2、不可變 其實字串有序,都很好理解,就是通過語言本身提供的方法來對字串進行一

常見錯誤分析解決方法

Such as :compile block ----Con_appError:make[1]: *** No rule to make target `Hai_Extern.obj', needed by `build/GXQ26_07B/gprs/MT6226o/lib/conn_app.lib'.  S

mysql 不能啟動的兩種錯誤提示解決方法

在linux系統中安裝mysql伺服器詳細步驟並解決ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passw 1. 提示 /tmp/mysql.sock 丟失 service mys

Linux環境下gcc靜態編譯/usr/bin/ld: cannot find -lc錯誤原因解決方法 原因:

原因: 一般出現這個問題的時候,Makefile中肯定有-static選項。這其實是靜態連結時沒有找到libc.a。 解決方案: 需要安裝glibc-static.xxx.rpm,如glibc-static-2.12-1.107.el6_4.2.i686.rpm,或是yum install gli

C#匿名型別Lambda方法

一、匿名型別產生的背景   C#是一種強型別語言,即每個變數都必須在使用前宣告其資料型別,無論是語言內建的型別還是自定義型別。而我們瞭解在許多其他語言中變數是可以“直接使用的”,即無需宣告,由編譯器決定變數識別符號,例如Matlab,Javascript,Lisp等。不

編譯XORG的錯誤集錦解決方法(持續更新中)

1.錯誤提示:error: bits/predefs.h: No such file or directory In file included from /usr/include/endian.h:61, from /opt/HEPX

Eclipse中常出現的錯誤提示處理方法

主題: Eclipse無提示的解決辦法!  1、選單window->Preferences->Java->Editor->Content Assist->Enable auto activation 選項要打上勾 2、windows-->p

安卓開發常見錯誤原因解決方法

做安卓開發一年半了,遇到過不少的問題,其中有些花了不少時間才得到解決,有些至今不知為何,也請高人指點迷津,為我撥雲見日~~有錯誤也多多包涵,幫我糾正~~ 1.更換安卓專案的庫檔案(即使庫檔案程

“adb不是內部或外部命令,也不是可執行的應用程式”錯誤原因解決方法

用SQLite時,可能會出現這樣的錯誤。 原因可能是環境變數PATH沒有配置或配置不正確。應該把adb.exe 所在目錄加入到PATH環境變數。例如:C:\Program Files\android-sdk-windows\tools   開啟cmd,進入adb.exe 所