ホームページ  >  記事  >  php教程  >  php 普通错误和致命错误捕获及处理

php 普通错误和致命错误捕获及处理

WBOY
WBOYオリジナル
2016-06-06 19:33:021064ブラウズ

无详细内容 无 ?php//禁止错误输出error_reporting(0);//设置错误处理器set_error_handler('errorHandler');register_shutdown_function('fatalErrorHandler');class Test{public function index(){//这里发生一个警告错误,出发errorHandler echo $undefined

<?php

	//禁止错误输出
	error_reporting(0);
	//设置错误处理器
	set_error_handler('errorHandler');
	register_shutdown_function('fatalErrorHandler');
	class Test{
			public function index(){
					//这里发生一个警告错误,出发errorHandler 
					echo $undefinedVarible;
			}
	}
	function errorHandler($errno,$errstr,$errfile,$errline){
			 $arr = array(
			 				'['.date('Y-m-d h-i-s').']',
			 				'http://www.baidu.com',
			 				'|',
			 				$errstr,
			 				$errfile,
			 				'line:'.$errline,
			 			);
			 //写入错误日志
                         //格式 :  时间 uri | 错误消息 文件位置 第几行
			 error_log(implode(' ',$arr)."\r\n",3,'./test.txt','extra');
			 echo implode(' ',$arr)."\r\n";
	}

	//捕获fatalError
	function fatalErrorHandler(){
			 $e = error_get_last();
			 switch($e['type']){
			 	case E_ERROR:
			 	case E_PARSE:
			 	case E_CORE_ERROR:
			 	case E_COMPILE_ERROR:
			 	case E_USER_ERROR:
			 		 errorHandler($e['type'],$e['message'],$e['file'],$e['line']);
			 		 break;		 	
			}
	}
	$test = new Test();
	////这里发生一个警告错误,被errorHandler 捕获
	$test->index();
	//发生致命错误,脚本停止运行触发 fatalErrorHandler 
	$test = new Tesdt();
	$test->index();
php 普通错误和致命错误捕获及处理
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。