1 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
我發(fā)現(xiàn)有點(diǎn)令人困惑的是,它set_exception_handler不僅捕獲Exception對(duì)象Throwable,還Error捕獲對(duì)象(它們是Throwable對(duì)象,但不是Exception對(duì)象)。
我覺(jué)得這很令人困惑,因?yàn)閟et_error_handler其中有“錯(cuò)誤”一詞,但它沒(méi)有捕獲這些對(duì)象類型。
因此,對(duì)于任何其他偶然發(fā)現(xiàn)這一點(diǎn)的人來(lái)說(shuō),在較新版本的 PHP 中,您不能期望Exception回調(diào)對(duì)象set_exception_handler。您需要期望 a Throwable,并且非線性地,您還可能獲得未收到的Error對(duì)象。set_error_handler
為了在我自己的設(shè)置中處理這個(gè)問(wèn)題,我采取了以下措施set_error_handler以使事情變得更清晰:
set_error_handler(function($errno, $errstr, $errfile, $errline, $errcontext) {
? ? $args = array($errstr, $errno, E_ERROR, $errfile, $errline);
? ? $errorException = new \ErrorException(... $args);
});
然后,這將被您的回調(diào)捕獲set_exception_handler。
希望這對(duì)其他人有幫助:)
- 1 回答
- 0 關(guān)注
- 124 瀏覽
添加回答
舉報(bào)