可能重复:
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
呢?有办法吗?感谢
答案 0 :(得分:4)
您需要使用RuntimeException
的子类。
答案 1 :(得分:3)
如果方法没有声明任何异常,唯一的方法是抛出一个RuntimeException
子类的异常。
在您的情况下,CustomException
应扩展RuntimeException
。
Oracle关于例外的一点理论。
答案 2 :(得分:1)
如果CustomException是未经检查的异常(运行时异常),这将起作用。您可以在此处阅读已检查与未检查的例外情况 - Java: checked vs unchecked exception explanation