ホームページ  >  記事  >  バックエンド開発  >  PHPの例外処理とエラー処理の違い

PHPの例外処理とエラー処理の違い

(*-*)浩
(*-*)浩オリジナル
2019-09-16 10:21:394194ブラウズ

「エラー」と「例外」の概念は非常に似ているため、混同されやすいです。「エラー」と「例外」はどちらもプロジェクトに問題があることを示し、両方とも関連情報とエラーの種類を提供します。

PHPの例外処理とエラー処理の違い

#ただし、「例外メカニズム」は「エラーメカニズム」の後にのみ登場し、「例外」は「エラー」を回避するという欠点です。 (推奨学習: PHP プログラミング入門から熟練度まで )

さらに重要な点は、「エラー」情報が豊富ではないため、これまでに見た最も一般的な関数の説明は次のとおりであるということです。 * 成功した場合 **、エラーが発生した場合は FALSE を返します。ただし、関数エラーには多くの理由が考えられ、さらに多くの種類のエラーがあります。単純な FALSE では、呼び出し元に特定のエラー メッセージを伝えることはできません。

PHP では、コード自体の例外 (通常、不正な環境や構文によって引き起こされる) がエラーとなり、動作中に発生する論理的なエラーを例外と呼びます。エラーはコードでは処理できませんが、例外はコードで処理できます。 try./catch 処理。

Exception

Exception は、Exception クラスのオブジェクトです。取り返しのつかない状況に遭遇したときにスローされます。問題が発生した場合、例外は、例外を取得するために使用されます。責任を委任することで、例外を防御的に使用して、潜在的な問題を予測し、その影響を軽減することもできます。

Exception オブジェクトには 2 つの主要なプロパティがあります。1 つはメッセージ、もう 1 つは数値コードです。これら 2 つのプロパティは、それぞれ getCode() と getMessage() を使用して取得できます。

例外ハンドラー

では、スローされる可能性のあるすべての例外をどのようにキャッチすればよいでしょうか? PHP では、グローバル例外ハンドラーを登録して、キャッチされなかった例外をすべてキャッチできます。 例外ハンドラーは、set_Exception_handler() 関数を使用して登録されます (ここでは匿名関数が使用されています)。

set_exception_handler(function (Exception $e)
{
	echo "我自己定义的异常处理".$e->getMessage();
});
throw new Exception("this is a exception");
 
//运行结果:我自己定义的异常处理this is a exception

Error

例外に加えて、PHP にはエラーを報告するための関数も用意されています。 PHP は、致命的なエラー、実行時エラー、コンパイル時エラー、起動エラー、ユーザーによって引き起こされたエラーなど、さまざまな種類のエラーを引き起こす可能性があります。エラー報告方法は php.ini で設定できます (ここでは説明しません)

エラー ハンドラー

例外ハンドラーと同様に、set_error_handler も使用できます。 () を使用してグローバル エラー ハンドラーを登録し、独自のロジックを使用して PHP エラーをインターセプトして処理します。 エラーハンドラーで die() または exit() 関数を呼び出す必要があります。呼び出されない場合、PHP スクリプトはエラーが発生した時点から実行を継続します。次のように:

set_error_handler(function ($errno,$errstr,$errfile,$errline)//常用的四个参数
{
	echo "错误等级:".$errno."<br>错误信息:".$errstr."<br>错误的文件名:".$errfile."<br>错误的行号:".$errline;
	exit();
});
 
trigger_error("this is a error");//自行触发的错误
 
echo &#39;正常&#39;;

以上がPHPの例外処理とエラー処理の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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