我有一个异常链,其中method1
抛出一个异常method2
,将异常抛出到main
. 出于某种原因,编译器强制我处理错误,method2
如果我不这样做,则将其标记为错误,表明这是一个已检查的异常。但是,当同样Exception
的内容被进一步抛出时main
,编译器允许我忽略它并且不显示任何错误。
中的原始异常method1
是 a ParseException
,已检查。但是该方法在头中有一个通用throws Exception
子句,并且将相同的对象抛出给具有相同throws Exception
子句的method2。这个异常何时以及如何失去被编译器检查/捕获的状态?
编辑澄清:
public void method1() throws Exception{
// code that may generate ParseException
}
public void method2() throws Exception{
method1(); //compiler error (if the throws clause is left out)
}
public static void main(String[] args){
method2(); //ignored by compiler, even though the exception isn't caught or thrown or handled at all
}
编辑:
对不起大家,这个问题是基于一个错误......主要方法实际上有一个throws Exception
我错过的子句。我已经删除了它,代码现在按预期运行。感谢所有的帮助!