私はCodeIgniterフレームワークでPHPを使用しています。私はtry/catchメソッドを使用していることが悪い習慣であることを示すいくつかの記事を読んでいます。PHPウェブアプリケーションtry/catchを使用する場合
は、私は潜在的なエラーが発生し、実際の誤差は、その後に起こる展開にあなたが抑制し、発生したエラーを処理したいときlog_message('level', 'message')
を使用してログインする。しかしせることができ、開発時にログを使用して理解しています。私は私が正しくのtry/catchを使用して使用する場合、私は混乱している...何かのようで、たとえば、
try {
$this->data['important'] = $this->Test_Model->do_something($data);
if(empty(data['important'])) {
throw new Exception('no data returned');
}
catch (Exception $e) {
//alert the user then kill the process
var_dump($e->getMessage());
}
をtry/catchブロックを使用してする必要があります。あなたのコードの構文エラーがあります
例外を抑制したくない場合があります。これは、Eric Lippertの非常に興味深い例外分類です(http://blogs.msdn.com/b/ericlippert/archive/2008/09/10/vexing-exceptions.aspx)。 –
例外を処理するのと同じコードブロックに例外をスローするのは悪い習慣です。例外はコンポーネントを分離するのに非常に便利です。 'FormBuilder'は例外をスローし、' Action'はそれを処理します。 'EmailValidation'は例外をスローし、' UserModel'はそれを処理します。等。#IMHO – Rudie
また、メソッドで問題の処理方法がわからない場合は、例外が非常に役に立ちますが、メソッドを呼び出すメソッドによっては、非常に便利です。例えば。 APIからデータを取得できなかった場合は、例外をスローして呼び出しメソッドに何をすべきかを決定させる(たとえば、失敗するか、別の呼び出しを行うなど)ようにしてください。 –