繁体   English   中英

Java中的“未处理的已检查异常作为抛出异常”

[英]“unhandled checked exception as a thrown exception” in Java

我正在学习SCJP 6学习指南Exam_310-065的第5章以及它所说的例外声明和公共界面部分

“每个方法必须通过提供catch子句来处理所有已检查的异常,或者将每个未处理的已检查异常列为抛出异常。”

我们如何将每个未处理的已检查异常列为抛出异常,以及它在代码中的外观如何? 谢谢。

它看起来像这样:

public void foo() throws SomeCheckedException, AnotherCheckedException
{
    // This method would declare it in *its* throws clause
    methodWhichThrowsSomeCheckedException();

    if (someCondition)
    {
        // This time we're throwing the exception directly
        throw new AnotherCheckedException();
    }
}

有关详细信息,请参阅JLS中的第8.4.6节

例如,如果你有:

public void doSomething() throws SomeException { 
    ... 
    throw new SomeException();
} 

并且你想要调用doSomething ,你必须要么catch异常,要么使用它来声明方法,因为它也容易抛出SomeException ,因此在调用堆栈中进一步传播它:

public void doSomethingElse() throws SomeException { 
    doSomething();
}

要么

public void doSomethingElse() { 
    try { 
        doSomething();
    }
    catch (SomeException) { 
        // Error handling
    }
}

考虑到RuntimeException不是已检查的异常,因此它们是此规则的例外。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM