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

PHPのエラーメッセージと例外メッセージの違い

(*-*)浩
(*-*)浩オリジナル
2019-09-06 10:32:492381ブラウズ

PHPのエラーメッセージと例外メッセージの違い

PHP の例外とは:

プログラムの実行中に予期せぬことが起こりますが、それが起こることは許されています (そうする必要はありません)。どちらかが起こってほしくない) 異常な状況) しかし、それは異常な状況です。私たちの 通常のロジックによれば、エラーは発生しないはずですが、依然として発生するエラーは、コンパイルや構文ではなく、ロジックおよびビジネス プロセスのエラーです。errorの上。

PHP のエラーとは: (推奨学習: PHP プログラミングの入門から習熟まで )

は次のものに属しますphp スクリプト自体の問題のほとんどは、構文とサーバー環境が間違っていることが原因で発生し、コンパイラーがチェックに合格しなかったり、実行できなかったりすることがあります。 Warning と Notice はどちらもエラーですが、レベルが異なり、try-catch ではエラーを捕捉できません。

上記のステートメントには前提条件があります:

PHP では、他の言語ではそのような結論、つまり例外やエラーを導き出すことができないため、このことわざにはさまざまな意味がありますさまざまな言語で。

PHP では、エラーや異常なコードはエラーとして扱われ、例外としてスローされません。ただし、状況によっては例外とエラーが同時にスローされる場合もあります (と言われていますが、適切な例は見つかりませんでした)。

つまり、データベース接続が失敗したときに例外を自動的にキャッチしたい場合、これは例外ではなくエラーであるため、機能しません。しかし、Java では異なり、期待と矛盾する多くの動作を例外として捕捉します。

#PHP の例外処理は役に立たないのでしょうか?

上記の分析から、PHP は積極的に例外をスローできないことがわかりますが、手動で例外をスローすることはできます。これは非常に言葉にならないことです。どこで発生するかがわかっている場合、何か問題が発生した場合を解決するには、if else を追加するだけではだめですか? なぜ手動で例外をスローする必要があるのですか? 手動で例外をスローできるため、これは例外ではなく、予期されるものであることがわかります。

私の理解では、これは PHP 例外処理が役に立たないところです (必ずしも正しいとは限りません)。したがって、PHP の例外メカニズムはそれほど完璧ではありませんが、フレームワークを使用したことがある学生は皆、この状況を知っています: PHP の「自動」例外キャプチャの先頭にコードをフレームワークで直接記述しても大丈夫です。 ?

ソース コードを読んだ学生は、このフレームワークに 3 つの関数 (register_shutdown_function、set_error_handler、set_Exception_handler、3 つのブラック テクノロジ) が関与していることを知っています。これらの関数を通じて、PHP による例外とエラーの誤った自動キャプチャを実現できます。

エラーを例外の形式でスローする (完全にスローすることはできません)

上記の説明から、php のエラーを例外の形式でキャプチャできないことがわかりますが、それらはスローされ、try-catch の影響範囲が拡張されました。先ほど set_error_handler() メソッドについて説明しました。これは何に使用されますか?エラーをキャプチャするので、それを使用してエラーをキャプチャし、その後スローすることができます。例外の形式、わかりました、次の記述を試してください:

<?php
    set_error_handler(&#39;error&#39;);
    function error($type, $message, $file, $line)
    {
        throw new \Exception($message . &#39;错误当做异常&#39;);
    }

    $num = 0;
    try {
        echo 1/$num;

    } catch (Exception $e){
        echo $e->getMessage();
    }
?>

PHP では、エラーが発生する可能性がある場所に単純に例外を直接スローしないことが最善です。一部のフレームワークでは、上記は書き直されています。メソッド、例外、およびエラー普通に投げられる

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

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