异常包装可能吗?

我有一个异常“OrekitException”,我想将它包装到我自己的 Exception 类中。


我该怎么办?


例如在我的一种方法中:


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 类之外?


Qyouu
浏览 133回答 2
2回答

HUWWW

提供一个也接受 wrap 异常的构造函数: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()不是跟踪异常的方式和记录异常和然后把它包在另一个不同的是你扔也不好,你仍然可以记录它在任何一层,它将使所有的事情并不清楚找到一些重复错误记录在日志文件中...一般来说,记录或抛出/传播异常:不能同时进行。

婷婷同学_

例外允许您指定一个cause. 您可以在构造函数中使用一个原因,并将其传递给Exception的构造函数:public class MyException extends Exception {      public MyException (String message, Exception cause){           super(message, cause);      }}然后你的方法可以抛出MyException:private void configureOrekit() throws MyException{    try {        method logic...    } catch (OrekitException oe) {        System.out.println(OrekitException oe);        log.error(oe.getMessage());        throw new MyException("", oe);    }}这允许来自MyException对象的堆栈跟踪caused by...显示原始的详细信息/跟踪OrekitException
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java