お世話になります。
あるinterfaceを実装するクラスを作成しています。
そこでinterface内のメソッドを実装するわけですが、そこで例外を生成しthrowしたいと思っています。ですが、interfaceでそのメソッド定義にはその例外をthrowするようには定義されていないので、コンパイル時にエラーになります。
今は強引にNullPointerExceptionを生成するようなコードを書いて例外を発生させていますが、このようなケースではどのように記述するのが一般的なのでしょうか。
interfaceは内製ではないので変更することができません。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
1.そのインタフェースで
public void someMethod() throws HogeException;
のような定義がされている場合
HogeExceptionを生成して投げるようにする。
2.throws自体が無い場合、
標準のExceptionに適切なRuntimeExceptionがあるならば、それを生成して投げる
(例えばNullPointerException)
3.標準の中に適切な例外が無い場合、
RuntimeExceptionを継承する独自の例外クラスを作成して、それを投げる
ですかねえ?
でも、そもそも1に該当しない場合は、無理やり例外を投げたとしても、そのメソッドの呼び出し元(これもおそらく内製ではないはず)がその例外をcatchしてくれる可能性は低いですよね。
なので「これがおきたら落ちるしかない」ほどの状況でもない限り、「例外を投げない」のが正解な気がします。
ああ、そうですね。そうでした。RuntimeExceptionなら投げられますね。
なんかできるはずだったなあ、と思いつつ、ググってみたりしたのですが、キーワードが悪かったせいか、見つけることができず、「あれ、できないんだっけ」とか思ってました。
これで解決します。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 15:14
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
String型の日付(2005/11/25)の...
-
C# マルチスレッドにおける例外...
-
nullで、return出来るのはどん...
-
【JAVA】与えられた金額を貨幣...
-
スタックオーバーフローとは?
-
子プロセスで発生した例外を親...
-
文字列からダブルクオートの削除
-
例外ってIf文の中に入れますか...
-
VBA 400エラー 1004エラー
-
C++の例外処理について
-
Javaで文字列をゼロ埋め(ゼロパ...
-
文字列が数字のみで構成されて...
-
オープンアプリにおける、テキ...
-
0除算の例外処理ができない!!...
-
時間の取得
-
エクセルVBAで、条件に一致する...
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
c++,ある関数のクラスから別の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
【JAVA】与えられた金額を貨幣...
-
連続する「\\」をひとつの「\\...
-
文字列からダブルクオートの削除
-
VB.Net Object型 空かどうか
-
0除算の例外処理ができない!!...
-
VB.NETで16進数が正しいかどう...
-
数字か文字列かを判定する関数
-
例外ってIf文の中に入れますか...
-
C# マルチスレッドにおける例外...
-
スタックオーバーフローとは?
-
String型の日付(2005/11/25)の...
-
Timestamp型への変換について(J...
-
C# UriFormatExceptionの回避
-
VBA Evaluate関数 型が一致しま...
-
ADOによるレコードの追加/更新
-
時間の取得
-
WebClient()以外でネットにアク...
-
C#の捕捉されない例外処理の対...
-
タトゥーや墨を入れる人の共通点
おすすめ情報