Exception 检查或取消检查哪个异常的优先级?为什么?

Exception 检查或取消检查哪个异常的优先级?为什么?,exception,exception-handling,checked-exceptions,unchecked-exception,Exception,Exception Handling,Checked Exceptions,Unchecked Exception,我编写了自己的两个自定义异常,一个是选中的,另一个是未选中的 当我执行我的代码时,只显示检查异常,为什么我不能得到未检查的异常输出 class Test { public static void main(String args[]) throws CheckedException { int i=0; int j=0; if(i==0){ throw new CheckedException("Got Check

我编写了自己的两个自定义异常,一个是选中的,另一个是未选中的 当我执行我的代码时,只显示检查异常,为什么我不能得到未检查的异常输出

    class Test {  
   public static void main(String args[]) throws CheckedException {
       int i=0;
       int j=0;
       if(i==0){
           throw new CheckedException("Got Checked Exception");
       }
       if(j==0){
           throw new UncheckedException("Got Unchecked Exception");
       }
   }
}
class CheckedException extends Exception{
    CheckedException(String s){
        super(s);
    }
}
class UncheckedException extends RuntimeException{
    UncheckedException(String s){
        super(s);
    }
}
上述程序的输出为:已检查异常
,但我希望同时输出已检查异常和(&get Unchecked Exception。我在这里犯了什么错误?我怎样才能克服这个问题呢?

在你的程序中,你在main()方法中使用了throws,并且初始化了i=0和j=0

第一个if(i==0)满足并生成异常,程序停止。这就是为什么第二个if条件部分不执行的原因

如果要检查第二个条件initialize,请使用0以外的内容检查i

比如i=1并执行

您还可以使用单独的try-catch块来测试这两种情况


谢谢

,因为无法访问未选中的异常。将
int i=0
更改为
i=1
,您将看到未选中的异常您无法同时看到这两个异常。如果抛出第一个异常,该方法将离开。好的,现在我写了第一个UncheckedException,然后CheckedException now output显示UncheckedException,但是我想要两个异常,有没有办法同时获得两个异常输出?没有。如果你使用调试器,你就会明白为什么。引发第二个异常的代码未执行谢谢,现在我明白了。