3

同じタイプのエラー処理を行うメソッドがいくつかあり、それをリファクタリングしたいと考えています。私のクラスのすべてのメソッドは、私の依存関係クラス (サード パーティ/Salesforce SOAP APIであるため、スローされる例外のタイプを制御できません) をX呼び出します。、、、のいずれかです。これらすべてのメソッドについて、例外コードがセッションの有効期限が切れているかどうかを確認してから、再度ログインしてメソッドを再試行する必要があります。binding.XbindingXcreateupdatedeletequery

public void create(SObject[] s){
try{
    binding.create(s);
 } catch (ApiFault e) {
    if(e.getExceptionCode == INVALID_SESSION_ID) {
               //login again
               login();
       //retry
       binding.create(s);
    }
 }
}

更新、削除についても同じパターンに従います。Query メソッドはさまざまな引数を受け入れます。

public void query(String query){
    try{
        binding.query(query);
    } catch (ApiFault e) {
        if(e.getExceptionCode == INVALID_SESSION_ID) {
            //login again
               login();
           //retry on specific code
           binding.query(query);
        }
    }
}

そのため、すべてのメソッドで INVALID_SESSION_ID を再試行するロジックを入れました。これらのメソッドを設計するより良い方法はありますか?

4

1 に答える 1