如何在另一个中捕获新的异常?

时间:2014-10-11 01:07:49

标签: java exception

Oracle在其教程中提到,一旦抛出异常,您就可以抛出一个新的异常。我不知道这意味着什么。如果我抛出SampleException它应该被捕到某个地方,不是吗?

Following part is taken from Oracle website

以下示例显示了如何使用链式异常。

try {

} catch (IOException e) {
    throw new SampleException("Other IOException", e);
}

在此示例中,捕获IOException时,会创建一个新的SampleException异常,并附加原始原因,并将异常链抛出到下一个更高级别的异常处理程序。

1 个答案:

答案 0 :(得分:2)

您必须在调用此方法时处理异常。例如:

public class JavaTutorialsCorner {     
    public void testMethod() throws SampleException { 
        try {
            // some logic
        } catch (IOException e) {
            throw new SampleException("Other IOException", e); 
        } 
    } 
}

如果你在其他地方调用此方法,你必须捕获抛出的异常或重新抛出它

public class JavaTutorialsCornerWeb {         
    public void testMethodnew() {
        try {
            JavaTutorialsCorner jtc = new JavaTutorialsCorner();
            jtc.testMethod();        
        } catch (SampleException sx) {
            sx.printStackTrace();
        } 
    } 
}