PHP的例外与错误处理课件

PPT
  • 阅读 48 次
  • 下载 0 次
  • 页数 22 页
  • 大小 265.501 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档15.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
PHP的例外与错误处理课件
可在后台配置第一页与第二页中间广告代码
PHP的例外与错误处理课件
可在后台配置第二页与第三页中间广告代码
PHP的例外与错误处理课件
可在后台配置第三页与第四页中间广告代码
PHP的例外与错误处理课件
PHP的例外与错误处理课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 22
  • 收藏
  • 违规举报
  • © 版权认领
下载文档15.00 元 加入VIP免费下载
文本内容

【文档说明】PHP的例外与错误处理课件.ppt,共(22)页,265.501 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45185.html

以下为本文档部分文字说明:

第8章PHP的例外與錯誤處理8-1PHP的錯誤處理8-2PHP5的例外處理8-1PHP的錯誤處理8-1-1PHP錯誤處理的基礎8-1-2exit()與die()的錯誤處理8-1-3自訂PHP的錯誤處理函數8-1-4產生使用者的自訂錯誤8-1PHP的錯誤處理PHP程式的錯誤(Erro

rs)是指程式執行前直譯過程的錯誤,或直譯後執行程式時產生的錯誤,主要分為兩種:•環境錯誤(EnvironmentalErrors):環境錯誤也稱為外部錯誤(ExternalErrors),這是指程式執

行環境所導致的錯誤,並不是程式設計的問題。例如:沒有權限無法寫入檔案,或檔案不存在。•程式錯誤(ProgrammingErrors):程式錯誤是程式中的臭蟲(Bugs),可能是語法錯誤、語意錯誤或程式邏輯錯誤(LogicalErrors)。8-1-1PHP錯誤處

理的基礎-說明錯誤處理(ErrorHandling)是一種處理錯誤的機制,可以處理直譯過程的語法和語意錯誤,或執行時的環境錯誤和程式錯誤中的邏輯錯誤。PHP在4.0版之前即提供內建的錯誤處理機制,當錯誤產生時,可以顯示各種不同的PHP錯誤訊息。8-1-1PHP錯誤

處理的基礎-範例例如:執行Ch8-1-1.php程式,因為require插入檔案不存在的環境錯誤,在執行時就會顯示PHP錯誤訊息:8-1-1PHP錯誤處理的基礎-四種錯誤等級ParseErrors:剖析錯誤是指PHP程式碼的語法和語意錯誤,這是執行前,直譯過程產生

的錯誤。FatalErrors:致命錯誤是很嚴重的執行時錯誤,它會導致PHP程式碼終止執行。Warnings:警告錯誤是一種尚能補救且非致命的執行時錯誤,PHP引擎會試圖繼續執行PHP程式碼。Notices:注

意錯誤是一種小且非致命的錯誤,只是用來提醒程式碼可能出現的錯誤。例如:沒有初始變數值。8-1-2exit()與die()的錯誤處理-方式基本的錯誤處理方式有:•不理會•終止程式顯示錯誤訊息•寫入記錄檔•使用自訂

錯誤處理進行補救8-1-2exit()與die()的錯誤處理-說明PHP程式最簡單的錯誤處理就是使用exit()或die()終止程式執行和顯示一段錯誤訊息。exit()與die()並不是真正的函數,它是PHP的語言建構子(LanguageConstruct),例如:使用PHP的

fopen()函數開啟檔案:$fp=@fopen($filename,"r")//開啟檔案orexit("錯誤:檔案$filename開啟錯誤!<br>");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的錯誤處理-錯誤等級常數錯誤等級常數說明E_ALL所有的錯誤和警告E_ERROR致命的執行時錯誤E_WARNING非致

命錯誤的執行時警告錯誤E_PARSE直譯時的程式碼剖析錯誤E_NOTICE執行時的注意錯誤E_CORE_ERROR在PHP引擎啟動時產生的致命錯誤E_CORE_WARNING在PHP引擎啟動時產生的警告錯誤E_COMPILE_ERROR致命的編譯時錯誤E_COMPILE_WAR

NING致命的編譯時警告錯誤E_USER_ERROR使用者產生的錯誤訊息E_USER_WARNING使用者產生的警告訊息E_USER_NOTICE使用者產生的注意訊息8-1-3自訂PHP的錯誤處理-指定錯誤處理函數在PHP程式可以使用set_error_hand

ler()函數指定一個函數作為錯誤處理:set_error_handler('myErrorHandler');上述程式碼指定參數的函數名稱為錯誤處理函數,即myErrorHandler()函數。8-1-3自訂PHP的錯誤處理-錯誤處理函數functionmyErrorHandle

r($type,$msg,$file,$line){switch($type){caseE_ERROR:echo“<b>…<br>";break;caseE_WARNING:echo"<b>…<br>";

break;caseE_NOTICE:echo"<b>…<br>";break;}//顯示錯誤訊息,寫入記錄檔案}8-1-3自訂PHP的錯誤處理-將錯誤訊息寫入記錄檔PHP程式的錯誤處理函數除了可以顯示錯誤訊息外,還可以呼叫error_log()函數將錯誤訊息寫入檔案:error_log($e

rr,3,"errors.log");函數第1個參數是錯誤訊息的字串,第2個參數是輸出種類的整數值:種類說明0寫入系統記錄檔1送到第3個參數的電子郵件地址3寫入第3個參數的自訂記錄檔名稱8-1-4產生使用者的自訂錯誤在PHP的錯誤等級之中,E

_USER_ERROR、E_USER_WARNING和E_USER_NOTICE錯誤等級可以用來建立使用者的自訂錯誤。在PHP程式是呼叫trigger_error()函數產生使用者自訂的錯誤:trigger_error("密碼是空字串!",E_USER_ERROR

);上述函數可以產生第1個參數訊息內容的自訂錯誤,在第2個參數指定錯誤等級。8-2PHP5的例外處理8-2-1PHP5的例外處理8-2-2繼承Exception類別8-2-1PHP5的例外處理-說明PHP5的例外處理(HandlingExceptions)是

一種流程控制的程式敘述,可以停止目前程式碼的執行,然後跳到指定區塊來處理錯誤。這些錯誤是一種例外物件(Exception),即在PHP程式執行期間,發生不正常執行狀態或錯誤時所產生的物件。8-2-1PHP5的例外處理-產生例外物件PHP內建的Except

ion類別可以建立例外物件,在PHP程式碼是使用throw指令來丟出例外。例如:在PHP程式丟出Exception例外物件:thrownewException("密碼是空字串!");上述程式碼使用new運算子建立例外物件,建構子方法的第1個參數是例外說明字串,第2個參數是

選項的數字錯誤碼。8-2-1PHP5的例外處理-取得例外資訊在Exception類別提供數個方法可以取得例外的相關資訊:方法說明getMessage()傳回錯誤訊息的字串,即建構子方法的第1個參數getCode()傳回

錯誤碼,即建構子方法的第2個參數getFile()傳回產生例外程式檔案的完整路徑getLine()傳回產生例外程式碼的行號getTrace()傳回產生例外過程每一個步驟的陣列getTraceAsString()類似getTrace(),可以傳回產生例外過程每一個步驟

的字串內容8-2-1PHP5的例外處理-例外處理的程式敘述(架構)PHP語言的例外處理程式敘述分成try和catch兩個程式區塊,可以處理特定的例外物件:try{………}catch(Exception$e){//例外處理………}8-2-1PHP5

的例外處理-例外處理的程式敘述(說明)try程式區塊:在try區塊的程式碼檢查是否產生例外,當例外產生時,就會丟出指定例外類型的物件。catch程式區塊:在try程式區塊的程式碼如果丟出例外,PHP程式需要準備catch程式區塊處理例外,傳入參數$e是例外物件,可以取得例外的相關資訊:prin

t"檔案:".$e->getFile()."<br>";print"行號:".$e->getLine()."<br>";print"錯誤訊息:".$e->getMessage()."<br>";8-2-2繼承Exception類別-說明在PHP程式除了可以使用現成E

xception類別建立例外物件外,我們也可以繼承Exception類別建立自訂的例外子類別,其主要目的如下所示:•在try/catch程式敘述可以區分不同錯誤所產生的例外物件。•在子類別可以新增所需的成員方法

。8-2-2繼承Exception類別-範例例如:驗證密碼錯誤的ValidException例外類別宣告:classValidExceptionextendsException{functiongetMyMessag

e(){print"檔案:".$this->getFile()."<br>";print"行號:".$this->getLine()."<br>";print"錯誤訊息:".$this->getMessag

e()."<br>";}}

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?