public class ThrowDemo {
public static void catchAndThrowNullPointerException() {
try {
throw new NullPointerException(); // Line Number 7
}
catch(NullPointerException npe) {
System.out.println("NPE thrown");
try {
throw npe;
}
catch(Exception ex) {
System.out.println("Exception thrown inside nested try.");
throw ex; // Line 16
}
}
}
public static void main(String args[]) {
catchAndThrowNullPointerException();
}
}
运行时,提供以下输出:
NPE thrown
Exception thrown inside nested try.
Exception in thread "main" java.lang.NullPointerException
at exception.handling.ThrowDemo.catchAndThrowNullPointerException(ThrowDemo.java:7)
at exception.handling.ThrowDemo.main(ThrowDemo.java:22)
这是一种预期的行为,如果是这样,为什么导致异常的实际行号16被抛出到主函数中而不包含在堆栈跟踪中?怀疑的原因是,如果注释第16行,则输出中不会打印出堆栈跟踪。
提前致谢。
答案 0 :(得分:1)
public interface B extends A
用于向java类添加更多方法(或行为)。
public interface B implements A
不是java中的有效代码,因为您无法通过实现其他接口来创建接口。实现接口时,需要在所有声明的方法中编写相关代码。一旦在方法中编写代码,就不能再将其命名为接口,因为接口只包含方法签名。