するTry catchブロックは、私はプランA、プランBと計画Cを持っていると私は各プランを試してみたい場合はどのような手順Javaはどれも
try {
step a;
step b;
step c;
} catch {
System.out.print("one of the steps failed");
}
を通過するように求め成功しない場合にのみ、3つのメソッドを試してみて、catchブロックを入力してください行
keep.trying{
plan A;
plan B;
plan C;
} catch {
System.out.print("None of the plans worked");
}
一方が行うことができ
boolean done=false;
try {
planA();
done=true;
}catch{// :|}
if (done!=true){
try {
planB();
done=true;
}catch{// :(}
if (done!=true){
try{
planC();
}catch{ System.out.print("Failed"); }
if (done == true){ System.out.print("Success") };
これはもっと良い/悪いスタイルの質問です。 "少なくとも1つのコマンドを実行しようとするか、例外をスローする"のが一般的です(try/catchブロック)。ネストされた "keep.trying"はほとんど使用されません。これはより良いスタイルがあるためですか?または、プログラムがあまりにも多くのノイズを発生させるべきではない(小さな成功率でコールを行う)か?
実際の問題の説明は、あまりにも曖昧すぎて具体的なアドバイスを行っていません。しかし、あなたが望むものが、あなたが持っているものに対するより汎用的な解決策であれば、必要なのは、1つの操作が成功するとすぐに停止するループだけです。 –
これは、例外を使用してvoidメソッドからの失敗を通知しようとしているように、ちょっと匂いがします。もしそうなら、それは悪いスタイルです。より良いスタイルは、成功/失敗フラグを返すようにすることです。ブール値であっても、チェーン化が非常に簡単です。 – CPerkins