カスタム例外での継承の使用を実演するように要求されました。これは私に尋ねられたものです。 MyExceptionというクラスを作成します。 - 継承を使用して、Exception1とException2の2つの例外クラスを作成します。 - 各クラスには、適切なコンストラクタが必要です。コンストラクタは、使用時にそれぞれ「例外1」や「例外2」などの関連するメッセージを提供します。は、カスタム例外の継承を実証します。Java
ので、私はのjava.lang.Exceptionから継承MyExceptionを、作成した:私は、その後Exception1とException2を作成
public class MyException extends Exception{
//default constructor
public MyException() {}
//constructor that accepts a message
public MyException(String message){
super(message);
}
、彼らはにもかかわらず
public class Exception1 extends MyException {
}
public class Exception2 extends MyException {
}
空ですそれはうまくいく、私は私のアプローチが正しくないと思う。 これは私がそれをテストする方法です。
//demonstrate use of custom exceptions
try{
if(true) {throw new Exception1();}
}catch (Exception1 e){
System.out.println("exception1 thrown");
}
try{
if(true) {throw new Exception2();}
}catch (Exception2 e){
System.out.println("exception2 thrown");
}
これを正しく行うにはどうすればよいですか? Exception1クラスとException2クラスにはどうすればいいですか?
おかげで、理にかなっています。しかし、私はe.getMessage()から結果を取得しません...私はこのようにコンストラクタを設定しました:super(message = "Exception1 thrown"); ...私はどこでミスをしていますか? – JohnSnow
e.getMessage()を呼び出すだけで何も起こらない場合は、私が示したように、それを印刷する必要があります。私が示したようにしているなら、あなたはコンストラクターを正しく構築できませんでした。私は完全な例を提供します。 – Athamas
私はSystem.out.println(e.getMessage())を使用しています。私はnull値を取得します。あなたが私に完全な例を与えることができれば、それはすばらしいことになります。 – JohnSnow