我被要求使用继承来创建异常超类(称为exceptiona)和异常子类exceptionb和exceptionc,其中exceptionb继承自exceptiona,exceptionc继承自exceptionb。编写一个程序来演示类型exceptiona的catch块捕获类型exceptionb和exceptionc的异常。
输出应该如下所示
因此,我开始制作这些类并建立它们之间的关系
public class ExceptionA {
public void ErrorMsg() throws Exception {
System.out.println("Exception A: Throwing Exception A");
}
}
public class ExceptionB extends ExceptionA{
public void ErrorMsg() throws IOException {
System.out.println("Exception B: Throwing Exception B");
}
}
public class ExceptionC extends ExceptionB{
public void ErrorMsg() throws NullPointerException {
System.out.println("Exception C: Throwing Exception C");
}
}
这里是主要的方法
public class ExceptionTest {
public static void main(String args[]) {
ExceptionC c = new ExceptionC();
ExceptionB b = new ExceptionB();
ExceptionA a = new ExceptionA();
try {
a.ErrorMsg();
b.ErrorMsg();
c.ErrorMsg();
}
catch(Exception e) {
StackTraceElement stackTraceElement[] = e.getStackTrace();
for(int i = 0; i < stackTraceElement.length; i++) {
System.err.println(stackTraceElement[i].getFileName() + ":"
+ stackTraceElement[i].getLineNumber() + ">>"
+ stackTraceElement[i].getMethodName() + "()");
}
System.out.println(e);
}
}
}
问:如何避免创建每个异常对象的示例?就像我做的,我也只是手动调用他们的错误消息?有没有一种方法可以将错误捕获到try块中,并将其传递给超类,从而导致每个子类触发其特定的错误方法?
只是想让你知道这是我一直回避的java类,真的是因为我很懒,我认为我的基本js知识可以帮助我勉强过关。所以我从yt的人那里拼凑出来的一切。
暂无答案!
目前还没有任何答案,快来回答吧!