0

可能重复:
有没有办法在不添加 throws 声明的情况下抛出异常?

我想知道当方法已经定义并且没有子句时,是否有一种方法可以封装Exception并重新抛出它。Exceptionthrows

一个例子(使用 JMSonMessage方法):

 public void onMessage(Message message) {

    if(message instanceof ObjectMessage){

        ObjectMessage objectMessage = (ObjectMessage)message;

        try {
            Object object = objectMessage.getObject();
        } catch (JMSException e) {
            throw new CustomException("blah blah", e); // ERROR HERE : Unhandled exception type CustomException
        }

     }

 }

那么,我该如何CustomException在我的代码中封装和发送呢?有办法吗?谢谢

4

3 回答 3

4

您需要使用RuntimeException.

于 2012-12-29T14:43:39.677 回答
3

如果一个方法没有声明任何异常,唯一的办法就是抛出一个异常,它的子类是RuntimeException.

在您的情况下CustomException应该扩展RuntimeException.

Oracle关于异常的一点理论。

于 2012-12-29T14:47:08.747 回答
1

如果 CustomException 是未经检查的异常(运行时异常),这将起作用。您可以在此处阅读有关已检查与未检查异常的信息 -Java:已检查与未检查异常说明

于 2012-12-29T14:49:20.243 回答