资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
第11页 / 共22页
第12页 / 共22页
第13页 / 共22页
第14页 / 共22页
第15页 / 共22页
第16页 / 共22页
第17页 / 共22页
第18页 / 共22页
第19页 / 共22页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
按一下以編輯母片標題樣式,*,按一下以編輯母片,第二層,第三層,第四層,第五層,第8章,PHP的例外與錯誤處理,8-1 PHP,的,錯誤處理,8-2 PHP 5,的,例外處理,8-1 PHP的錯誤處理,8-1-1 PHP錯誤處理的基礎,8-1-2 exit()與die()的錯誤處理,8-1-3 自訂PHP的錯誤處理函數,8-1-4 產生使用者的自訂錯誤,8-1 PHP的錯誤處理,PHP程式的錯誤Errors是指程式執行前直譯過程的錯誤,或直譯後執行程式時產生的錯誤,主要分為兩種:,環境錯誤Environmental Errors:環境錯誤也稱為外部錯誤External Errors,這是指程式執行環境所導致的錯誤,並不是程式設計的問題。例如:沒有權限無法寫入檔案,或檔案不存在。,程式錯誤Programming Errors:程式錯誤是程式中的臭蟲Bugs,可能是語法錯誤、語意錯誤或程式邏輯錯誤Logical Errors。,8-1-1 PHP錯誤處理的基礎-說明,錯誤處理Error Handling是一種處理錯誤的機制,可以處理直譯過程的語法和語意錯誤,或執行時的環境錯誤和程式錯誤中的邏輯錯誤。,PHP在4.0版之前即提供內建的錯誤處理機制,當錯誤產生時,可以顯示各種不同的PHP錯誤訊息。,8-1-1 PHP,錯誤處理的基礎,-,範例,例如:執行,Ch8-1-1.php,程式,因為,require,插入檔案不存在,的環境錯誤,在執行時就會顯示,PHP,錯誤訊息,:,8-1-1 PHP,錯誤處理的基礎,-,四種錯誤等級,Parse,Errors,:,剖析,錯誤是指,PHP,程式碼的語法和語意錯誤,這是,執行前,,,直譯,過程產生的錯誤。,Fatal,Errors,:,致命,錯誤是很嚴重的執行時錯誤,它會導致,PHP,程式碼終止執行,。,Warnings,:,警告,錯誤是一種尚,能補救,且非致命的,執行時,錯誤,,PHP,引擎會試圖繼續執行,PHP,程式碼。,Notices,:,注意錯誤是一種,小且非致命,的錯誤,只是用來,提醒,程式碼可能,出現的錯誤,。例如:沒有初始變數值。,8-1-2 exit()與die()的錯誤處理-方式,根本的錯誤處理方式有:,不理會,終止程式顯示錯誤訊息,寫入記錄檔,使用自訂錯誤處理進行補救,8-1-2 exit()與die()的錯誤處理-說明,PHP程式最簡單的錯誤處理就是使用exit()或die()終止程式執行和顯示一段錯誤訊息。,exit()與die()並不是真正的函數,它是PHP的語言建構子Language Construct,例如:使用PHP的fopen()函數開啟檔案:,$fp=fopen($filename,r)/開啟檔案,or exit(錯誤:檔案$filename開啟錯誤!);,8-1-3,自訂,PHP,的,錯誤處理,-,設定錯誤等級,PHP,提供,error_reporting(),函數指定,PHP,程式需要,回報的錯誤等級,。換句話說,我們可以只回報所需錯誤,,而隱藏其他,不需要的錯誤:,error_reporting(E_ERROR,|,E_WARNING,|,E_NOTICE);,PHP,程式會回報,E_ERROR,、,E_WARNING,和,E_NOTICE,三種錯誤等級。,8-1-3,自訂,PHP,的錯誤處理,-,錯誤,等級常數,8-1-3 自訂PHP的錯誤處理-,指定,錯誤處理函數,在,PHP,程式可以使用,set_error_handler(),函數指定一個,函數,作為錯誤處理:,set_error_handler(,myErrorHandler,);,上述程式碼指定參數的函數名稱為錯誤處理函數,即,myErrorHandler(),函數。,8-1-3 自訂PHP的錯誤處理-錯誤處理函數,function,myErrorHandler,($type,$msg,$file,$line),switch($type),case,E_ERROR,:echo“;,break;,case,E_WARNING,:echo;,break;,case,E_NOTICE,:echo;,break;,/,顯示錯誤訊息,寫入記錄檔案,8-1-3 自訂PHP的錯誤處理-,將錯誤訊息,寫入記錄檔,PHP,程式的錯誤處理函數除了可以顯示錯誤訊息外,還可以呼叫,error_log(),函數,將錯誤訊息,寫入檔案,:,error_log($err,3,errors.log);,函數,第,1,個參數,是,錯誤訊息的字串,,,第,2,個,參數是,輸出種類的整數值,:,8-1-4 產生使用者的自訂錯誤,在,PHP,的錯誤等級之中,,E_USER_ERROR,、,E_USER_WARNING,和,E_USER_NOTICE,錯誤等級可以用來,建立使用者的自訂錯誤,。,在,PHP,程式是呼叫,trigger_error(),函數產生使用者自訂的錯誤:,trigger_error(,密碼是空字串,!,E_USER_ERROR);,上述函數可以產生,第,1,個,參數,訊息內容,的自訂錯誤,在,第,2,個,參數指定,錯誤等級,。,8-2 PHP 5的,例外處理,8-2-1 PHP 5的例外處理,8-2-2 繼承Exception類別,8-2-1 PHP 5的例外處理-說明,PHP 5的例外處理Handling Exceptions是一種流程控制的程式敘述,可以停止目前程式碼的執行,然後跳到指定區塊來處理錯誤。,這些錯誤是一種例外物件Exception,即在PHP程式執行期間,發生不正常執行狀態或錯誤時所產生的物件。,8-2-1 PHP 5的例外處理-產生例外物件,PHP,內建的,Exception,類別可以建立例外物件,在,PHP,程式碼是使用,throw,指令,來,丟出例外,。例如:在,PHP,程式丟出,Exception,例外物件:,throw,new,Exception,(,密碼是空字串,!);,上述程式碼使用,new,運算子建立例外物件,,建構子方法的,第,1,個,參數是,例外說明字串,,,第,2,個,參數是選項的,數字錯誤碼,。,8-2-1 PHP 5的例外處理-取得例外資訊,在,Exception,類別,提供數個,方法,可以取得例外的相關資訊:,8-2-1 PHP 5,的例外處理,-,例外處理的程式敘述,(,架構,),PHP,語言的例外處理程式敘述分成,try,和,catch,兩個程式區塊,可以處理特定的例外物件:,try,catch,(Exception$e),/,例外處理,8-2-1 PHP 5的例外處理-例外處理的程式敘述(說明),try,程式區塊:,在,try,區塊的程式碼,檢查,是否產生例外,當例外產生時,就會,丟出,指定例外類型的物件。,catch,程式區塊,:,在,try,程式區塊的程式碼如果丟出例外,,PHP,程式需要準備,catch,程式區塊處理例外,,傳入參數,$e,是例外物件,可以取得例外的相關資訊:,print,檔案,:.$e-getFile().;,print,行號,:.$e-getLine().;,print,錯誤訊息,:.,$e-getMessage().;,8-2-2 繼承Exception類別-說明,在,PHP,程式除了可以使用現成,Exception,類別建立例外物件外,我們也可以繼承,Exception,類別,建立自訂的例外子類別,,其主要目的如下所示:,在,try/catch,程式敘述可以,區分不同錯誤,所產生的例外物件。,在子類別可以,新增所需的成員方法,。,8-2-2 繼承Exception類別-範例,例如:,驗證密碼錯誤,的,ValidException,例外類別宣告:,class ValidException extends Exception,function getMyMessage(),print,檔案,:.$this-getFile().;,print,行號,:.$this-getLine().;,print,錯誤訊息,:.,$this-getMessage().;,
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6