[英]PHP try catch exceptions
你好我有這樣的代碼:
try
{
// Here I call my external function
do_some_work()
}
catch(Exception $e){}
問題是:如果do_some_work()出現問題並產生錯誤,那么try catch會隱藏錯誤嗎?
PHP中有兩種類型的錯誤。 有例外,也有錯誤。
try..catch
將處理異常,但它不會處理錯誤。
為了捕獲PHP錯誤,您需要使用set_error_handler()
函數 。
簡化事情的一種方法是讓set_error_handler()
在遇到錯誤時拋出異常。 如果你這樣做,你需要謹慎行事,因為它有可能造成各種麻煩,但這將是一種讓try..catch
能夠處理所有PHP錯誤的方法。
如果do_some_work()
拋出異常,它將被捕獲並被忽略。
try / catch構造對標准PHP錯誤沒有影響,僅對異常有影響。
產生致命錯誤
不,捕獲不能捕獲致命錯誤。 你甚至不能使用錯誤處理程序。
如果你想捕獲所有其他錯誤,請查看ErrorException
並將其專用於set_error_handler
:
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exception_error_handler");
/* Trigger exception */
strpos();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.