ネットティハンドラースタックにスローされた未チェックの例外を処理する方法

StackOverflow https://stackoverflow.com/questions/8823774

  •  27-10-2019
  •  | 
  •  

質問

Netty Handler Stackにスローされた例外は上流イベントを生成し、最終的にハンドラーに例外を呼び起こすため、例外はconted-Exceptionハンドラーに届きません。 ExceptionCaughtメソッドでその例外をre延しても役に立たない(Nettyが再度処理するため)。 ExceptionCaughtメソッドから(またはすべて)未チェックの例外を投げたいと思います。これを行う方法はありますか?

役に立ちましたか?

解決

いいえ、これをtodoする方法はありません。あなたができる唯一のことは、例外で例外を処理することです。なぜこれがあなたにとって問題なのですか?

他のヒント

私はノーマンに同意しなければなりません、私は同様の問題を抱えていました。 ExceptionCaught()メソッドを作成し、その中に例外処理ルーチンと呼ばれます。私が遭遇した問題は、私の例外ハンドリングルーチンがクリーンアップを行い、他のネットメソッドを呼び出そうとしたことですが、その結果、Nettyは吊り下げられました。

私の修正は、Inside ExceptionCaught()から新しいスレッドを作成することでした。これは、例外処理ルーチンとExceptionCaught()からの単純なリターンを呼び出すことでした。これにより、Nettyの例外処理が通常のNetty操作を完了して再開できます。他のネット機能を呼び出す前に、新しいスレッド内に1秒の遅延を置く必要があります。これにより、Nettyの例外処理は、新しいスレッドがクリーンアップを開始し、他のNetty関数を呼び出す前に行われることを保証します。少し過度の作業のように見えますが、動作し、人種の状態を回避します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top