0

私は例外を通してより良いエラー処理方法を実装しようと考えています。私のコードが深刻でエラーを返す場合は、2つのオプションがあります。エラー処理を行う最良の方法

  1. 実行時例外を拡張する例外をスローします。
  2. エラーメッセージオブジェクトと自分の応答を渡します。これにより、必要に応じてエラーメッセージを見て、各レベルでエラーを処理することができます。

私はのは、私はインターフェイスを作成しましょう、しかし1が好き:

method1() throws ExtendedRuntimeException; 
method2() throws ExtendedRuntimeException; 

public interface Interface { 
    method1(); 
    method2(); 
} 

は今、契約のこのタイプでは、私はとしてメソッドを宣言インタフェースを見ていません

インプリメンテーションで拡張ランタイム例外を処理する必要があることを明確に指定する方法を教えてください。

+0

一般的に 'throws 'と宣言するメソッドは、「例外は処理しません」と言っています。したがって、契約でこれを明示的に指定しないメソッドは、そのようなハンドラとして考える必要があります。 – Dan

答えて

0

複数のアプローチが必要です。 アプリケーションで例外処理メカニズムを設計する場合、例外を処理するためにimplを強制するインターフェイスを設計する必要があります。これらはチェック例外です。

また、すべての例外を処理するレイヤーを決定したり、例外の処理方法を決定したりする必要があります。すべての下位層が例外を上回り、すなわち例外をバブルアップする。あなたは例外サブクラスを作成することによってそれを行うことができます。または単に例外をそのまま投げることができます。エラーコード/メッセージなどの詳細を含む例外サブクラスを作成するのが最も良い方法です。

多くのデザインには、メソッド定義にスローがあるインターフェイスがあります。

HTH 〜あなたは例外(チェックa.k.a)あなたのインターフェースハンドルランタイムの実装を制御することはできません私見

0

Sudoer、Ayusman。

@Ayusmanのように、実装者はチェック例外を処理する必要があると宣言できますが、実行時例外については常に宣言する必要はありません。また、実装者としてのチェックされていない例外については、インターフェイスデザイナーとして宣言していない独自の実行時例外をスローすることができます。

これは、契約のみを宣言しているが、どのような種類の実行時例外が可能なのか十分なコンテキストがないため、当てはまります。私はここでそのアイデアを伝えることができますように。

私は、これらが有用であることが判明:

お役に立てば幸いです。

関連する問題