クラスの宣言で例外をスローしようとしています。このようなもの:
class myClass throws A_Dangerous_Exception implements Something_to_Implement {
...
}
助言がありますか?
そんなことはできません。おそらく、クラスのコンストラクターから例外をスローするつもりです。
class myClass implements Something_to_Implement {
myClass() throws A_Dangerous_Exception {}
}
複数のコンストラクターがある場合、必要に応じてそれぞれに異なるthrows
句を指定できます。
class myClass implements Something_to_Implement {
myClass() throws A_Dangerous_Exception {}
myClass(int a) throws A_Dangerous_Exception, A_Not_So_Dangerous_Exception {}
}
次に、そのクラスをインスタンス化するたびに、例外をキャッチするかthrows
、クラスをインスタンス化するメソッドの句で宣言することにより、例外に対処する必要があります。
void myMethod() {
try {
new myClass();
} catch (A_Dangerous_Exception e) {}
}
また
void myMethod() throws A_Dangerous_Exception {
new myClass();
}
できません。例外は、メソッドまたはコンストラクターからのみスローできます。あなたはこれを行うことができます:
class myClass implements Something_to_Implement {
public myClass() throws A_Dangerous_Exception {
...
}
}
FileOutputStream
コンストラクターから例外をスローする前などに、リソースを整理するように注意してください。
読む:例外