説明:例外処理の面で堅牢なシステムの場合は、例外を管理するための不可欠な部分であり、主に異常な捕獲および処理の操作は、しかし、PHPでのtry-catchの使用は、私が個人的にJavaで感じませんでしたtry-catchで、PHPで、手動で、ご希望の例外処理の効果を達成するために、異なるJavaで例外をスローする必要があるので、快適、手動でトライゾーンに例外をスローする必要はありません、それは自動的に例外、およびプロセスをキャッチします。
PHP:のtry-catch例
1:例外をスローすることが関数を作成します
関数testErrorが(){
$ S = 2/0;
新しい例外をスロー(「値は1以下でなければなりません」); //ここでは、手動での仕事のために例外をスローする必要があります
trueを返します。
}
2:キャプチャ例外 "のtry-catchを" コードブロック
{試します
testErrorが();
整数0で割ったときに異常なしマニュアルスローとして、」エコーの後、まだここに実行されます。「;
}キャッチ(例外の$ E){
'エラーメッセージ:' エコーは$ e-> getMessage()の;
}
注意:ヒント以下上記の試験手順の実施後に存在します。
私たちが見る、開発者は、エラーが異常によって引き起こされるものを大まかに理解しますが、堅牢なシステムに関しては、これらのヒントは、ユーザーに表示されるべきではない、ユーザーに提供するように、上記のヒントのいくつかを見た後、いくつかの優しいメッセージは、私たちは本当に、他の人が表示されませんされ、赤いボックス上の情報に加えて、(あなたはこの他に優しい治療を行うことができますが、ここではテスト出力の情報である)ユーザ情報が可視赤色のボックスでみましょう私たちはそのはdisplay_errors =オフ、それに近い上のphp.iniはdisplay_errorsを=を必要としています。Apacheを再起動して閉じた後、その後、ちょうど約テスト手順を訪問し、迅速な情報は、赤いボックスの上に表示されます。
これは、PHPのtry-catchをテストするために主にあるときは、手動で次のことを確認し、仕事をスローする必要があります。
異常な機能をこの文を投げるコメントアウトして、テスト、次のプロンプトが表示されますが実行される: 「整数を割ると0、何のマニュアルがないと例外をスローし、それはまだ「ここ行い 、異常このプログラムはのtry-catchに表示されたときには、プロセスに巻き込まれていないことを意味しますが、いつものようにページを実行するために、次のコードは、これは我々が望むものではありません;私達はちょうどそれが正常にハンドルの例外をキャッチすることができ、後で削除をスローするように再びコメントアウト。
Javaの:のtry-catch例:
パブリッククラスTestTry {
パブリック静的ボイドtestErrorが(){
int型I = 3、n = 0です。
INT S = I / N。
}
パブリック静的無効メイン(文字列[] args){
{試します
TestTry.testError();
System.out.println( "ここで後藤");
}キャッチ(例外){
System.out.println( "にErrorMessage:" + e)前記
}
}
}
エラーメッセージ:java.lang.ArithmeticException:/ゼロによる上記検証処理を実行した後
注:これは、Javaのtry-catchブロックを手動でスローする必要はありませんが、自動的に処理領域をキャプチャしようとする上記の検証プログラムで見ることができます。
次のステップは、例外処理機構のphpでの綿密な外観どのように自動運転になります。ます。https://my.oschina.net/mapsh/blog/598135で再現