ホームページ >バックエンド開発 >PHPの問題 >PHP例外処理はどのようなエラーをキャッチしますか?

PHP例外処理はどのようなエラーをキャッチしますか?

王林
王林オリジナル
2019-09-23 13:14:272739ブラウズ

PHP例外処理はどのようなエラーをキャッチしますか?

PHP には 3 種類のエラー レポートがあります:

1. エラー、構文解析エラー、致命的エラー

2. 警告

3.

結果に注意してください:

エラー-> 致命的なエラーにより、ダウンロードされたプログラムの実行が終了します。構文エラーがあるため、PHP はまったく動作せず、実装されていませんでした。

警告 -> 実行は終了しませんが、結果に影響します。

注 -> は実行を終了せず、結果には影響しません。

ユーザーにより良いエクスペリエンスを提供するために、すべてのエラー出力 (表示ではなく出力) をマスクします。ただし、この場合、管理者はエラーを確認できません。エラーはページには表示されませんが、管理者が参照できるようにログが生成されます。

error_reporting(~E_ALL) すべての出力はブロックされており、当然、管理者は出力を確認できません。すべての出力をブロックするのではなく、すべての表示をブロックしたいだけです。 ini_set('display_errors','off'); は、ページ上のすべてのエラー表示はブロックされますが、エラー出力はブロックされないことを意味します。ブロックされました。

ini_set('log_errors','on'); //开启日志写入功能 ini_set('error_log','myerror.log');
//日志的存放位置 ini_set('display_errors','off'); //屏蔽页面显示 error_reporting(E_ALL); //输出所有错误
echo 123; echo $str; //这个会出现一个注意,表示未声明变量 echo date(); //警告,没有传参 echo dae(); 
//致命错误,找不到这个函数 echo 123;

Exception:

PHP 言語では、自動的に例外をスローする JAVA のような言語とは異なり、すべての例外を自らスローする必要があります。これが、PHP ソース コードで例外処理ステートメントがほとんど見られない理由の 1 つです。

例外とエラー:

例外とは、期待を満たさず、プログラム動作中の通常のプロセスとは異なる状態を指します。このエラーはそれ自体の問題であり、コンパイラがチェック設定を通過して実行するのを妨げる、不正な構文または環境上の問題によって引き起こされます。

PHP には当初例外処理がなかったため、エンタープライズ レベルの開発に参入するために後に模倣されました。 PHP が異常なコードを検出すると、ほとんどの場合、例外ではなく直接エラーがスローされます。

php は、例外をスローした後に try...catch を使用して例外をキャッチすることしかできません (これは一般的に当てはまり、一部の例外は自動的にキャッチできます)。

PHP では、通常、例外は次のシナリオで使用されます:

1. プログラムの悲観的な予測: コードがさまざまな考えられる問題を処理できないと思われる場合、予見可能な状況、予見できない状況によって。

2. プログラムのニーズとビジネス上の懸念事項: データの一貫性が非常に高い場合は、try...catch を使用して例外による論理中断のダメージを最小限に抑え、例外を修復できます

After処理中、ビジネス ロジックの整合性は影響を受けません。

3. 言語レベルでの堅牢性要件: ランタイム プロセスを正確に制御することにより、プログラムが中断されたときに、try...catch を予測どおりに使用して、起こり得るエラーの範囲を狭め、例外を適時にキャッチします。および

対応する救済策を提供します。

PHP のエラー:

エラーとは、スクリプトが異常に実行される原因となる状況です。

php の主なエラー レベルは次のとおりです:

deprecated: 最低级别的错误,表示"不推荐, 不建议"。例如在php 5中使用了ereg系列的正则函数就会出现。这类错误一般由于使用了不推荐的、过时的函数或语法造成。不影响程序正常运行,但建议修正。
notice: 一般指语法中存在不恰当的地方。如使用变量但是未定义就会报此错误。不影响程序正常流程。
warning: 较高级别的错误,在语法中出现很不恰当的情况才会出现此错误,比如函数参数不匹配。会导致得不到预期的结果,需要修改代码。
fetal error: 致命错误,直接导致程序终止运行。这类错误必须修改。
prase error: 语法解析错误,上面几种都属于运行时错误,此错误在运行前就会抛出。

カスタム エラー ハンドラー:


set_error_handler() 関数を使用できます。マネージド エラー ハンドラーを使用すると、エラー処理プロセスをカスタマイズできます。

ホスティングをキャンセルしたい場合は、同じページでrestore_error_handler()を使用してホスティングをキャンセルできます。自分でエラーをスローしたい場合は、trigger_error()関数を使用できます。

推奨チュートリアル:

PHP ビデオ チュートリアル

以上がPHP例外処理はどのようなエラーをキャッチしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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