ホームページ  >  記事  >  バックエンド開発  >  PHP 例外およびエラー処理メカニズム

PHP 例外およびエラー処理メカニズム

WBOY
WBOYオリジナル
2016-06-23 13:24:07767ブラウズ

PHP は例外を手動でスローすることによってのみ例外をキャッチできます

class emailException extends Exception{            //定义魔术方法 ,直接输出对象的信息	public function __toStirng(){		$error = "Code:{$this->getCode()},message:{$this->getMessage()} line:{$this->getLine()},file:{$this->getFile()}";		return $error;	}}function reg($i){	if($i>0){		throw new emailException("错误");	}}try{		reg($i=6);}catch(emailException $e){	echo $e;	echo $e->getMessage();}catch(Exception $e){    $e->getMessage();}//此处需要注意  exception 作为超类应该放到最后捕获//如果提前捕获这个超类,后面的捕获就终止了,而且不提供 针对性的信息处理

実行図

カスタマイズされた例外処理関数 (例外と致命的でないエラーのみをキャッチでき、致命的なエラーは引き続きハングします)

function  customError($errno,$errstr,$errfile,$errline){		echo "<b>错误代码</b>[${error}]${errstr}"."</br>";	echo "错误所在代码行:{$errline}文件{$errfile}"."</br>";	echo "PHP版本",PHP_VERSION,"(",PHP_OS,")"."</br>";}set_error_handler("customError",E_ALL|E_STRICT); $a = array('o'=>2,4,6,8);echo $a[o];  //错误的代码//set_error_handler()函数会接管php内置的错误处理,//可以在同一个页面使用 restore_error_handler()取消接管

実行チャート:

胎児エラーの簡単な対処法

class Shutdown{				public function stop(){			if(error_get_last()){				print_r(error_get_last());			}			die('Stop.');		}	}	register_shutdown_function(array(new Shutdown(),'stop')); 	//此函数会在php程序终止或者die时触发一个函数	$a = new a(); //错误代码	echo "致命错误";

ランニングチャート:

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。