4

Java VM が Try-Catch で何をするのか疑問に思っています。それはどのように実行されますか?

私の推測では、何かをインストールするときにテストを実行し、エラーが見つからない場合は続行するかどうかをユーザーに尋ねる Linux システムのようなものだと思います。Try-Catch の場合、テストを実行し、問題がなければ実装しますか?

4

4 に答える 4

4

それよりもはるかに簡単です。try句に含まれる句でエラーが発生した場合、catch句のコード(そのエラーに対応します。1回の試行で複数のcatchを使用できます)が実行されます。特定の句が失敗するかどうかを事前に知る方法はなく、エラーが発生した後に回復を試みるだけです。

10個の句があり、最後の句がエラーをスローした場合、最初の9個によって実行された変更は「元に戻されません」。

于 2012-11-02T19:34:27.097 に答える
4
try
{
//execute your code
}catch(Exception e)
{
//Log message 
//IF you don't want to continue with the logic inside method, rethrow here.
}finally{
 //Ir-respective of what the status is in above cases, execute this code.
}
//Continue with other logic in the method

.これは、コードの一部を実行する必要がある (または) 例外ではないと判断したい場合に役立ちます。

Java で try-catch がどのように機能するかについて詳しく理解するには、このチュートリアルをお読みください。

于 2012-11-02T19:32:38.487 に答える
1

プログラムが処理できない予期しない結果をもたらす可能性のあるコードは、tryブロック内に保持され、catchブロックを使用して、プログラムの予期しないクラッシュを処理/キャッチします。ここで、コードがスローできる例外のタイプを宣言します。

例えば:

 int a;
 try {
  a=1/0;//program wil crash here
 }catch(Exception e){
  System.out.println("Division by zero ");//handling the crash here
 }
于 2012-11-02T19:35:37.837 に答える
0

チェックなしで、通常どおり実行を開始します。例外が発生した場合、(ループ内のように) 句から抜け出し、breakすぐに を実行しcatchます。例外が見つからない場合は、catch 句をスキップします。

このfinally句は、例外がスローされたかどうかに関係なく呼び出されることを保証します。実際の例は、例外がスローされたかどうかに関係なく、ファイルまたはネットワークから読み取り、ストリームを閉じることです。

于 2012-11-02T19:51:04.867 に答える