php OOP例外またはdie()?
-
27-09-2019 - |
質問
私はいくつかのプロジェクトを開発しています。そして、さまざまなエラーを制御したいと思います。すべての一般的なフレームワークとphpプロジェクトには、さまざまな例外があることを私は知っています。しかし、それは必須の作業ではないと思います。エラーが発生した場合は、メッセージを使用してdie()を作成できます。 1.例外の主な利点は何ですか? 2. die()でエラーを制御できますか?
ありがとうございます。
解決
そうですね、die()
を使用できます。しかし、それはすべてのエラーを致命的にします。エラーからの回復をまったく試みることができないことを意味します。場合によっては、それで問題ありません。
ただし、ほとんどの場合、エラーの後に「クリーンアップ」する機能、または別の方法を試す機能が必要になる場合があります。ここで例外が役に立ちます...エラーを処理する場所と場合を選択できます。エラーから適切に回復することができます。
たとえば、リモートサーバーからファイルをダウンロードするメソッドdownloadFromRemoteServer($address);
があるとします
die()
を使用している場合、ダウンロードが失敗すると、スクリプトは終了します。話の終わり。
ただし、例外を使用する場合は、別のサーバーを試すことも、別の方法(HTTPとFTPなど)を試すこともできます。 ジェネラコディセタグプレ
ただし、例外は例外的な状況でのみ役立つことに注意してください。これらは、考えられるエラーに使用するためのものではありません。たとえば、ユーザーが自分の電子メールアドレスを正しく確認しなかった場合、それは例外ではありません。ただし、データベースサーバーに接続できない場合、またはDBで競合が発生している場合は、例外的な状況になります...
他のヒント
アレクサンダー、
die()とExceptionsは異なることを実行します。
「die」言語構造は、スクリプトの実行を停止し、関数のように呼び出された場合はパラメータを出力する可能性があります。
一方、例外はOOPコンテキストで使用されるより高度な構造であり、スクリプトを停止する必要があるかどうか、停止する必要がある場合はどのような方法でユーザーに表示するかについて、開発者に柔軟性を与えます。など
例外はこれよりも少し複雑なので、最初にOOPを使用して文書化するか、zendフレームワークについて読んでください。例外とは何かを把握できます。
ただし、単純なものの場合は、いつでもexit(またはdie、同じこと)を使用できます。
これがお役に立てば幸いです。 スラブ語
1例外の主な利点は何ですか?
主な利点は次のとおりです。
- 失敗した関数は、エラー状態でリターンを汚染する必要はありません
- 入力された例外はコード内の適切なレベルで処理できます。 コードのどの部分でどのエラーを処理できるかを決定します
- エラー状態に関するより多くの情報を例外自体に保存して、エラーの処理と、場合によってはエラーからの回復を容易にすることができます。
2 die()でエラーを制御できますか?
私はそれをコントロールと呼ぶことはほとんどなく、実際にエラーを処理することをあきらめると呼びます。私のプロジェクトのどの時点でも、
die()
は実際にはユーザーフレンドリーではなく、PHPコードのこれらのdie('...some error condition...');
の例はすべて、開発中のプロジェクトにのみ適しています。本番環境では、ユーザーが可能な限り最も簡単な方法でタスク/プログラムを続行できるようにする必要があるため、「再試行」(エラー条件が再び満たされる可能性が低い場合)、「申し訳ありませんが機能しません」 '/他の種類のメッセージ、フォーム/ページはすべて、die()
よりも望ましいです。