1. ホーム
  2. java

[解決済み] throws宣言を追加せずに例外を投げる方法はありますか?

2023-03-17 06:56:20

質問

次のような状況です。

別のベースクラスを継承し、あるメソッドをオーバーライドするJavaクラスがあります。 ベースメソッドは例外をスローしないため、このメソッドには throws ... 宣言がありません。

さて、私自身のメソッドは例外を投げることができるはずですが、次のどちらかを選択する必要があります。

  • 例外を飲み込むか
  • throws 宣言を追加する

最初のものは例外を黙って無視し(私はいくつかのロギングを実行することができました)、2番目は異なるメソッドヘッダのためにコンパイラエラーを生成するので、両方は満足のいくものではありません。

public class ChildClass extends BaseClass {

        @Override 
        public void SomeMethod() {
            throw new Exception("Something went wrong");
        }
}

どのように解決するのですか?

本当に投げたいのであれば、宣言しなくてもアンチェックされた例外を投げることができます。未チェックの例外は RuntimeException . を拡張する Throwables は Error もチェックされませんが、完全に処理不能な問題 (無効なバイトコードやメモリ不足など) にのみ使用されるべきです。

具体的なケースとして、Java 8 では UncheckedIOException をラップして再スローするために IOException .