PHP 自定義錯(cuò)誤處理函數(shù)的使用詳解
function myErrorHandler($errno, $errstr, $errfile, $errline){
if(!(error_reporting() &$errno)){return;}
switch ($errno){
case E_USER_ERROR:
echo "<b>My ERROR</b> [$errno] $errstr<br/>";
echo "錯(cuò)誤行:$errline 在文件:$errfile之中<br/>";
echo " PHP版本: " .PHP_VERSION ." (" .PHP_OS .")<br/>";
break;
case E_USER_WARNING:
echo "<b>My WARNING</b> [$errno] $errstr<br/>";
break;
case E_USER_NOTICE:
echo "<b>My NOTICE</b> [$errno] $errstr<br />";
break;
default:
echo "Unknown error type: [$errno] $errstr<br />";
break;
}
return true;
}
function trigger_test($age){//拋出錯(cuò)誤的測(cè)試函數(shù)
if($age <= 0 || $age > 999) trigger_error("年齡不合法:$age歲", E_USER_ERROR);
if($age < 18) trigger_error("未成年:$age歲", E_USER_WARNING);
if($age > 40 && $age < 100) trigger_error("年齡稍大:$age歲", E_USER_NOTICE);
}
//如果只是簡(jiǎn)單統(tǒng)一地處理錯(cuò)誤:
$errorHandler = set_error_handler("myErrorHandler");
trigger_test(1000);//會(huì)拋出一個(gè)error級(jí)的錯(cuò)誤
function myError($errno, $errstr, $errfile, $errline){
print_r(func_get_args());
//具體處理方法
}
function myWarning($errno, $errstr, $errfile, $errline){
print_r(func_get_args());
//具體處理方法
}
function myNtice($errno, $errstr, $errfile, $errline){
print_r(func_get_args());
//具體處理方法
}
//如果要分別處理不同錯(cuò)誤級(jí)別:
set_error_handler('myError',E_USER_ERROR);
set_exception_handler('myWarning',E_USER_WARNING);
set_exception_handler('myNtice',E_USER_NOTICE);
trigger_error('故意拋出個(gè)錯(cuò)誤,還是很?chē)?yán)重的哪一種!',E_USER_ERROR);
相關(guān)文章
tp5 實(shí)現(xiàn)列表數(shù)據(jù)根據(jù)狀態(tài)排序
今天小編就為大家分享一篇tp5 實(shí)現(xiàn)列表數(shù)據(jù)根據(jù)狀態(tài)排序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
laravel 如何實(shí)現(xiàn)引入自己的函數(shù)或類(lèi)庫(kù)
laravel 如何實(shí)現(xiàn)引入自己的函數(shù)或類(lèi)庫(kù)?今天小編就為大家解答一下在laravel中引入自己的函數(shù)或類(lèi)庫(kù)的方法,分享給大家,給大家做個(gè)參考,一起過(guò)來(lái)看看吧2019-10-10
PHP 異步執(zhí)行方法,模擬多線程的應(yīng)用分析
本篇文章是對(duì)PHP 異步執(zhí)行方法,模擬多線程的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP迭代器的內(nèi)部執(zhí)行過(guò)程詳解
下面我們來(lái)了解如何實(shí)現(xiàn)一個(gè)自定義的迭代器,然后再開(kāi)始慢慢理解迭代器的內(nèi)部工作原理。先來(lái)看一個(gè)官方的例子2013-11-11
ThinkPHP自動(dòng)完成中使用函數(shù)與回調(diào)方法實(shí)例
這篇文章主要介紹了ThinkPHP自動(dòng)完成中使用函數(shù)與回調(diào)方法,實(shí)例分析了ThinkPHP中自動(dòng)填充的用法以及使用函數(shù)與回調(diào)的方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11
php+mysql不用遞歸實(shí)現(xiàn)的無(wú)限級(jí)分類(lèi)實(shí)例(非遞歸)
這篇文章主要介紹了php+mysql不用遞歸實(shí)現(xiàn)的無(wú)限級(jí)分類(lèi)實(shí)例,重點(diǎn)在不使用遞歸,需要的朋友可以參考下2014-07-07
Docker搭建自己的PHP開(kāi)發(fā)環(huán)境
本文給大家介紹的是如何在docker中搭建一個(gè)PHP的開(kāi)發(fā)環(huán)境,將用 zPhal-dockerfiles 做為例子,有需要的小伙伴可以參考下2018-02-02
PHP實(shí)現(xiàn)抽獎(jiǎng)功能實(shí)例代碼
這篇文章主要介紹了PHP如何實(shí)現(xiàn)抽獎(jiǎng)功能,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06

