日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

php优秀框架codeigniter学习系列——异常和错误处理机制

發布時間:2024/6/21 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 php优秀框架codeigniter学习系列——异常和错误处理机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  這篇介紹下CI框架的異常和錯誤處理機制。

  在入口文件index.php中,根據設置的環境參數設置error_reporting的范圍,和是否顯示錯誤。

  在CI初始化程序CodeIgniter.php中,設置自定義的錯誤處理方法,自定義的異常處理方法,自定義的php中止處理方法。

1     set_error_handler('_error_handler');
2     set_exception_handler('_exception_handler');
3     register_shutdown_function('_shutdown_handler');

  _error_handler,_exception_handler,_shutdown_handler均在system/core/Common.php中定義。

  _error_handler

  當php程序出錯時,_error_handler會捕獲這個錯誤。得到的錯誤信息包括錯誤級別,錯誤信息,出錯文件地址,出錯行數。對于E_ERROR | E_PARSE | E_COMPILE_ERROR | E_CORE_ERROR | E_USER_ERROR級別的錯誤,會設置http請求返回code為500。對于error_reporting()為0(可能是生產環境也可能是函數前加有忽略錯誤標志@)的或者錯誤級別沒有在index.php中設置的,直接返回。否則會記錄錯誤日志。如果設置了display_errors可以展示錯誤,則顯示錯誤信息給用戶看到。

  值得一提的是,官方文檔有說明。以下級別的錯誤不能由用戶定義的函數來處理: E_ERROR、 E_PARSE、 E_CORE_ERROR、 E_CORE_WARNING、 E_COMPILE_ERROR、 E_COMPILE_WARNING。程序通常會直接拋出一個錯誤信息。無論是否開啟error_reporting,都不能記錄到日志中。

  _exception_handler

  用于捕獲異常。常常由throw new exception("string...")觸發。它也會調用日志處理類來記錄日志。它和_error_handler傳遞給日志處理類的日志類別參數都是error。如果設置了display_errors可以展示錯誤,則顯示相關異常信息給用戶看到。

  _shutdown_handler

  程序執行中止時候(不管有沒有錯誤),會調用這個方法。該方法會去程序運行中出現的錯誤,如果有,傳遞給_error_handler函數處理。

  

  除了這三個異常捕獲的函數。CI框架還提供了主動拋出錯誤頁面的函數。在system/core/Common.php中定義了show_error,show_404。

  show_error可以設置錯誤信息,設置Http狀態碼,出錯顯示模版等。

  show_404可以設置404錯誤顯示模板,是否記錄日志等。

  

總結

以上是生活随笔為你收集整理的php优秀框架codeigniter学习系列——异常和错误处理机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。