<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 概述 設置用戶自定義的錯誤處理函數 格式 ``` set_error_handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] ) : bool ``` ## 示例 ### 自定義錯誤 ``` // 取消系統定義的錯誤顯示 // 我們將要定義自己的錯誤處理 error_reporting(0); // 使用自定義錯誤處理 set_error_handler("userErrorHandler"); // 用戶自定義錯誤處理函數 function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars) { // 錯誤發生的時間 $dt = date("Y-m-d H:i:s (T)"); // 定義錯誤字符串的關聯數組 // 在這里我們只考慮 // E_WARNING, E_NOTICE, E_USER_ERROR, // E_USER_WARNING 和 E_USER_NOTICE $errortype = array ( E_ERROR => 'Error', E_WARNING => 'Warning', E_PARSE => 'Parsing Error', E_NOTICE => 'Notice', E_CORE_ERROR => 'Core Error', E_CORE_WARNING => 'Core Warning', E_COMPILE_ERROR => 'Compile Error', E_COMPILE_WARNING => 'Compile Warning', E_USER_ERROR => 'User Error', E_USER_WARNING => 'User Warning', E_USER_NOTICE => 'User Notice', E_STRICT => 'Runtime Notice', E_RECOVERABLE_ERROR => 'Catchable Fatal Error' ); // 設置要保存變量跟蹤信息的錯誤類別 $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE); $err = "<errorentry>\n"; $err .= "\t<datetime>" . $dt . "</datetime>\n"; $err .= "\t<errornum>" . $errno . "</errornum>\n"; $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n"; $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n"; $err .= "\t<scriptname>" . $filename . "</scriptname>\n"; $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n"; if (in_array($errno, $user_errors)) { $err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variables") . "</vartrace>\n"; } $err .= "</errorentry>\n\n"; // for testing // echo $err; // 記錄錯誤信息到錯誤日志,并在發生關鍵用戶錯誤時發送電子郵件 // 直接輸出 echo $err; // 或者保存文件 error_log($err, 3, "php_err.log"); } function throwError($msg,$errorType = E_USER_NOTICE){ trigger_error($msg,$errorType); } // 未定義的常量,將產生一個警告 $t = I_AM_NOT_DEFINED; // 輸出警告 $a = 1/0; throwError("產生一個錯誤",E_ERROR); throwError("產生一個警告",E_WARNING); throwError("產生一個注意",E_NOTICE); ``` output ``` <errorentry> <datetime>2020-08-28 15:09:40 (CEST)</datetime> <errornum>2</errornum> <errortype>Warning</errortype> <errormsg>Use of undefined constant I_AM_NOT_DEFINED - assumed 'I_AM_NOT_DEFINED' (this will throw an Error in a future version of PHP)</errormsg> <scriptname>/Users/idcpj/Web/phalcon/demo/phpinfo.php</scriptname> <scriptlinenum>73</scriptlinenum> </errorentry> <errorentry> <datetime>2020-08-28 15:09:40 (CEST)</datetime> <errornum>2</errornum> <errortype>Warning</errortype> <errormsg>Division by zero</errormsg> <scriptname>/Users/idcpj/Web/phalcon/demo/phpinfo.php</scriptname> <scriptlinenum>76</scriptlinenum> </errorentry> <errorentry> <datetime>2020-08-28 15:09:40 (CEST)</datetime> <errornum>2</errornum> <errortype>Warning</errortype> <errormsg>Invalid error type specified</errormsg> <scriptname>/Users/idcpj/Web/phalcon/demo/phpinfo.php</scriptname> <scriptlinenum>67</scriptlinenum> </errorentry> <errorentry> <datetime>2020-08-28 15:09:40 (CEST)</datetime> <errornum>2</errornum> <errortype>Warning</errortype> <errormsg>Invalid error type specified</errormsg> <scriptname>/Users/idcpj/Web/phalcon/demo/phpinfo.php</scriptname> <scriptlinenum>67</scriptlinenum> </errorentry> <errorentry> <datetime>2020-08-28 15:09:40 (CEST)</datetime> <errornum>2</errornum> <errortype>Warning</errortype> <errormsg>Invalid error type specified</errormsg> <scriptname>/Users/idcpj/Web/phalcon/demo/phpinfo.php</scriptname> <scriptlinenum>67</scriptlinenum> </errorentry> ``` ### 把錯誤轉換為異常拋出(推薦) ``` set_error_handler("error_handler"); function error_handler($errno, $errstring, $errfile, $line, $trace) { throw new ErrorException($errstring, $errno, 0, $errfile, $line); } try { $c = 21 / 0; // 異常會正常拋出,不會被接收 //throw new Exception("asd"); } catch(ErrorException $e) { echo "自定義錯誤:".$e->getMessage(), "\n"; } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看