例外をスローしない基本クラスの呼び出し方法を通じてJava例外をスローすることは可能ですか?

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

  •  02-10-2019
  •  | 
  •  

質問

これは例外処理に関するばかげたJavaの質問かもしれませんが、ContentSproviderのサブクラスからサービスを要求しているUIアクター(Androidアクティビティ)があります。サブクラスは、SDカードがいっぱいになった場合、SDカードが欠落している場合、ネットワークI/O ERROROSなどの例外をスローしたいと考えています。ただし、CP-Subclassをコーディングして例外をスローすると、コンパイラは例外を追加するように申し出ます。 CPクラス。明らかに、私は基本クラスを変更したくありませんが、UIにサブクラスの例外をキャッチすることを望んでいます。

わかる?これは可能ですか?そうでない場合、私のサービスサブクラスがスロー可能なオブジェクトをUIに戻すためのより良いパターンがありますか?

役に立ちましたか?

解決

「チェックされた例外」を宣言してキャッチする必要があります。 runtimeexceptionsを宣言したり、明示的にキャッチする必要はありません。したがって、runtimeexceptionを投げて、階層の好きな場所でそれをキャッチできます。

他のヒント

あなたは投げることができます Unchecked exceptions メソッドのプロトタイプにそれらを追加する必要はありません。

未確認の例外は、継承する例外です RuntimeException. 。それはあなたがやりたかったことですか?

コンパイラによってチェックされていないRuntimeExceptionのサブクラスのインスタンスを投げることができます。

ただし、そうは言っても、空の例外仕様は基本クラスのメソッドの契約の一部です。サブクラスが契約を満たすことが望ましいため、サブクラスインスタンスはスーパークラスタイプを使用する任意のコードで使用できます。 (これは次のように知られています リスコフ代替原則.)

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