0

特別な例外が発生した場合は、手順をやり直したいと思います。

コードを二度とコピーしたくありません。どうすればこれを達成できますか?

try{
//step1
//step2
//step3
}catch(specialException1 e){
    //redo step1
    //redo step2
    //redo step3
}

編集済み:実際には、別の条件でチェックしているため、その例外は別のクラスからスローされます。そして、このクラスに戻ったら、それを処理し、要件に応じてその手順を再度実行する必要があります。Oauthの有効期限が切れたような例です。トークンを再度更新する必要があります。

4

2 に答える 2

1

まず、これらのステップの 1 つが をスローしたときException、なぜそれらを再度実行したいのですか?

tryそして、それが必要な場合は、これらのステップをクラブして別のメソッドに入れて、とcatchブロックの両方でそのメソッドを呼び出すことができます。

try{
    mySteps();
}catch(SpecialException se){
    mySteps();
}

private void mySteps() throws SpecialException{
     // Step 1
     // Step 2
     // Step 3
}
于 2013-03-08T09:25:14.297 に答える
0

ステップをプライベートな静的メソッドとしてエクスポートし、必要なときに呼び出します。

ステップがチェック例外をスローする場合は、throwsキーワードをメソッド シグネチャに追加する必要があります。

于 2013-03-08T09:24:54.897 に答える