我有一个异常“OrekitException”,我想将其包装到我自己的异常类中。
我该如何解决这个问题?
例如在我的方法之一中:
private void configureOrekit() throws OrekitException{
try {
method logic...
} catch (OrekitException oe) {
System.out.println(OrekitException oe);
log.error(oe.getMessage());
}
我自己的异常类:
public class MyException extends Exception {
public MyException ( String message )
{
super( message );
}
}
如何将 OrekitException 合并到 MyException 中,以便每当抛出它时,它都在 MyException 类之外?
最佳答案
提供一个也接受异常的构造函数来包装:
public class MyException extends Exception {
public MyException (String message, OrekitException exception){
super(message, exception);
}
}
或者要包装任何异常,请使用更广泛的参数类型:
public MyException (String message, Exception exception){
super(message, exception);
}
您可以将其用作:
private void configureOrekit() throws MyException{
try {
method logic...
} catch (OrekitException oe) {
throw new MyException("message useful...", oe);
}
请注意,System.out.println()
不是跟踪异常的方法,记录异常然后将其包装在您抛出的另一个异常中是不好,因为您仍然可以在任何层记录它,在日志文件中找到一些重复的错误日志会使事情变得不清楚......
一般来说,要么记录异常,要么抛出/传播异常:不能同时记录和传播异常。
关于java - 异常包装可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52274052/