2

我々は春クラウド春クラウドNetflixのを春クラウド装うと春ブーツを使用しています。Feignのエラーを管理するには?

Feignの助けを借りて、資格情報を検証するためにauthenticationマイクロサービスと通信しようとするゲートウェイアプリケーションを作成しています。ここでは、私たちの装うauthenticationクライアントの例を見ることができます:

@FeignClient(value="auth", configuration = AuthClientConfiguration.class) 

public interface AuthClient { 
    @RequestMapping(method = RequestMethod.GET, value = "/tokens", consumes = MediaType.APPLICATION_JSON_VALUE) 
    Single<Session> getSession(@RequestHeader("Authorization") String token); 
} 

、どのように我々は、クライアントが提起することができ、すべての例外に対処することができている質問?つまり、NetworkExceptionまたはTimeoutExceptionがスローされたことをどのように把握できますか?我々は独自のErrorDecoderを定義しましたが、この「リスナーの種類」はリクエストが到着して応答が返されたときにのみ機能します(このケースではauthenticationクライアントから)。では、この他の例外をどのように管理できますか?

ベスト、

答えて

0

エラーデコーダは(... 500、404、401、など)HTTPエラー応答をデコードしています。例外はクライアントの呼び出しでバブルアップするので、try/catchを使用するとうまくいくはずです。

try { 
     return client.home(); 
    } catch (RuntimeException e) { 
     e.printStackTrace(); 
     throw e; 
    } 
+0

キャッチするより具体的な例外はありませんか? – francescou

+0

ありがとう@spencergibb。それはうまくいきました。ポイントは、そのコードを再利用するためには、それを含めなければならないということです。私たちがやったことは、デコレータとして機能する新しいクラスを作成した後、タイムアウトなどの「一般的な」例外をすべて管理します。 –

関連する問題