[解決済み】再試行キャッチはどのように実装するのですか?
2022-04-03 08:49:56
質問
トライキャッチは、例外処理を支援するためのものです。つまり、予期せぬ出来事から回復しようとする、より堅牢なシステムを実現するためのものです。
命令実行(メッセージ送信)時に何か起こるかもしれないので、tryで囲む。もし、予想外のことが起きたら、catchを書けばいいのです。例外のログを取るだけではダメだと思うんです。catchブロックは、エラーから回復する機会を与えるためのものだと思う。
さて、何が問題だったのかを修正できたので、エラーから回復できたとしましょう。再挑戦するのはとてもいいことです。
try{ some_instruction(); }
catch (NearlyUnexpectedException e){
fix_the_problem();
retry;
}
これではすぐに永遠のループに陥ってしまいますが、仮にfix_the_problemがtrueを返したら、再挑戦します。Javaにそのようなものがないことを考えると、あなたならこの問題をどのように解決しますか?これを解決するためのあなたのベストな設計コードは何でしょうか?
これは哲学的な質問のようですが、私が求めているものがJavaで直接サポートされていないことをすでに知っていることを考えると、このような質問になります。
どのように解決するのですか?
を囲む必要があります。
try-catch
の中に
while
のようなループになります。-
int count = 0;
int maxTries = 3;
while(true) {
try {
// Some Code
// break out of loop, or return, on success
} catch (SomeException e) {
// handle exception
if (++count == maxTries) throw e;
}
}
を撮影してきました。
count
と
maxTries
で例外が発生し続ける場合は、無限ループに陥らないようにするために
try block
.
関連
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] 複数の例外を一度にキャッチする?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] Pythonの関数が例外を投げるかどうかをテストするにはどうすればよいですか?
-
[解決済み] 複数のJava例外を同じcatch節でキャッチすることはできますか?
-
[解決済み] Javaにおけるチェック済み例外とチェックされていない例外の理解
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】プログラムを停止/終了させることなく、完全な例外トレースバックをキャッチして表示する方法は?
-
[解決済み】C#で例外をキャッチして再スローする理由とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] javacが「using unchecked or unsafe operations」という警告を出す原因は何ですか?
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない