私は現在取り組んでいるコードベースである例外混乱を解決しようとしています。例外処理をどのようにクリーンアップできますか?
基本設定はこれです。そのまま
public interface TerminalMessage<E> {
// Override for specific return data type.
public E send(TerminalStream stream) throws Exception;
}
これらのクラスは、などのIOException、InterruptedExceptionある
ようなさまざまな例外の多くがスロー:
私はこのようになりますクラスの多くで実装されたインタフェースを持っています現在、キャッチされた例外に対してgetMessage()を呼び出し、このメッセージをui-codeに中継します。
私はときどきユーザーに偽のメッセージを表示し、私は望ましくない例外を捕まえるので、これはあまりいいことではありません。
私はこれらすべての種類の例外をラップするカスタム例外クラス(TerminalException)を作成しようと考えています。
しかし、ラッピングをどこで行うべきかわからないのは、例外が最初に(出力ストリームなどで)スローされる場所や、すべてのsend()メソッドでラップする必要があるということです。前者は多くのコードを追加しないという利点がありますが、ストリームがTerminalExceptionではなくIOExceptionをスローすることは私にとって意味があります。
上記の設計では、ユーザーに表示されるときどき悪いメッセージが実際には解決されないため、スローされた例外をユーザーにとって有用なものに変換する方法のヒントも素晴らしいでしょう。
ありがとうございます!
この記事を読むことを強くお勧めします。http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html?page=2 – aviad