已要求我演示对自定义异常的继承用法。这就是我的要求:创建一个名为MyException的类:-使用继承,创建两个异常类:Exception1和Exception2;-每个类应具有适当的构造函数,该构造函数在使用时将提供相关的消息,例如分别为“ exception 1”和“ exception 2”;
所以我创建了MyException,它继承自java.lang.Exception:
public class MyException extends Exception{
//default constructor
public MyException() {}
//constructor that accepts a message
public MyException(String message){
super(message);
}
然后,我创建Exception1和Exception2,但它们为空
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类中放入什么?
您不应该打印抛出了什么异常,而应该打印Exception.getMessage()
结果,否则在这种情况下,异常没有任何提示。
try{
throw new Exception1("This is thrown intentionally");
}catch (Exception1 e){
System.err.println(e.getMessage());
}
您还可以在异常内添加自定义方法或其他消息,或者,例如,可以从更特定的异常扩展它们(更好的做法)。
除此之外,没有什么比这更多的了。
自定义例外的示例:
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String msg){
super(msg);
}
public MyException(String msg, Exception cause){
super(msg, cause);
}
public static void main(String[] args) {
try {
throw new MyException();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句