第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么 PHP set_execption_handler 會(huì)捕獲 Error 對(duì)象

為什么 PHP set_execption_handler 會(huì)捕獲 Error 對(duì)象

PHP
慕標(biāo)5832272 2023-09-15 21:29:44
我正在 PHP 中處理錯(cuò)誤和異常句柄,并且在嘗試調(diào)用不存在的方法時(shí)發(fā)現(xiàn)一些意外行為。這是 PHP:<?php    set_error_handler(function() {        echo 'error';    });    set_exception_handler(function() {        echo 'exception';        $args = func_get_args();        print_r($args);    });    $obj = new stdClass;    $obj->jdhgdfkjh();    exit(0);這是輸出:exceptionArray(    [0] => Error Object        (            [message:protected] => Call to undefined method stdClass::jdhgdfkjh()            [string:Error:private] =>             [code:protected] => 0            [file:protected] => /var/www/domain.com/index.php            [line:protected] => 11            [trace:Error:private] => Array                (                )            [previous:Error:private] =>         ))我真的不在乎嘗試調(diào)用不存在的方法時(shí)是否發(fā)生錯(cuò)誤或異常。我只是對(duì)為什么使用錯(cuò)誤對(duì)象調(diào)用異常處理程序感到困惑。如果有人以前遇到過(guò)這個(gè)問(wèn)題,希望能得到一些澄清。
查看完整描述

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ì)其他人有幫助:)


查看完整回答
反對(duì) 回復(fù) 2023-09-15
  • 1 回答
  • 0 關(guān)注
  • 124 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)