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