簡體   English   中英

PHP嘗試捕獲異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM