我怎样才能重新抛出异常?

时间:2012-12-29 14:41:03

标签: java exception

  

可能重复:
  Is there a way to throw an exception without adding the throws declaration?

我想知道是否有办法封装Exception并在已定义方法并且没有Exception子句时将其重新抛出到另一个throws中。

示例(使用JMS onMessage方法):

 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呢?有办法吗?感谢

3 个答案:

答案 0 :(得分:4)

您需要使用RuntimeException的子类。

答案 1 :(得分:3)

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

在您的情况下,CustomException应扩展RuntimeException

Oracle关于例外的一点理论。

答案 2 :(得分:1)

如果CustomException是未经检查的异常(运行时异常),这将起作用。您可以在此处阅读已检查与未检查的例外情况 - Java: checked vs unchecked exception explanation