2016-11-14 16 views
1

私は以下のコードブロックを持っています。私はorg.springframework.web.context.request.async.AsyncRequestTimeoutExceptionを取得しています。キャッチブロックはそれを処理していません。誰でも以下のsupplyAsyncブロックによってスローされた例外を処理する方法を教えてもらえますか?CompletableFuture.supplyAsyncによってスローされた例外を処理する方法

@org.springframework.scheduling.annotation.Async 
    public CompletableFuture<ResponseEntity<?>> getTeam(String teamCode) { 
     CompletableFuture.supplyAsync(() -> { 
      CricketTeam team; 
      try { 
       team = service.getTeamInfo(teamCode); 
      } catch (Exception ex) { 
       Error error = new Error(500, ex.getMessage()); 
       return new ResponseEntity<>(error, HttpStatus.OK); 
      } 
      return new ResponseEntity<>(team, HttpStatus.OK); 
     }); 

} 
+0

あなたは、try/catchステートメントで全体を包む試したことがありますか? –

+0

あなたはsupplyAsyncブロック全体を意味しますか? – Jobin

+1

「エラー」とは何ですか?さらに、 'try'ボディ内にスローされた例外だけを捕捉することができます。あなたは 'AsyncRequestTimeoutException'がスローされる場所を明確にしませんでした。 – Holger

答えて

3

はたぶん、この(あなたが種類を調整する必要があります)のようなもの:

CompletableFuture.supplyAsync(() -> possiblyFailingMethod()) 
      .exceptionally((e) -> 
        { 
         log.error("Something went wrong", e); 
         return "KO"; 
      }); 
関連する問題