try /catch ブロック内に while ループを入れようとしています。私の好奇心には、whileループが終了したときに最後にそのtry catchが実行されません。実際に何が起こっているのか説明できますか?グーグルで検索してみましたが、詳細は見つかりませんでした。
質問する
2584 次
2 に答える
5
あなたのコードは次のようになっていると思います:
try
{
while (...)
{
// ...
}
}
catch (FooException ex)
{
// This only executes if a FooException is thrown.
}
finally
{
// This executes whether or not there is an exception.
}
catch ブロックは、例外が発生した場合にのみ実行されます。finally ブロックは通常、例外がスローされたかどうかに関係なく実行されます。したがって、finally ブロックが実際に実行されていることがわかるでしょう。コンソールに何らかの出力を引き起こす行をそこに配置することで、これを自分で証明できます。
ただし、finally ブロックが実行されない状況があります。詳細については、こちらを参照してください。
于 2012-09-01T07:39:26.300 に答える
1
System.exit()
プログラムがorを使用して終了したError
場合にのみ発生する可能性がありますThrowable
(vs.Exception
それはキャッチされます)。
次のことを試してください。
public static void main(String[] args) {
try{
System.out.println("START!");
int i=0;
while(true){
i++;
if(i > 10){
System.exit(1);
}
}
}
catch (Exception e) {
// TODO: handle exception
}
finally{
System.out.println("this will not be printed!");
}
}
于 2012-09-01T07:50:58.063 に答える