从今天,开始记录开发设计过程中遇到的问题。
今天开发过程中遇到,在处理异常中 遇到 Exception getMessage 返回null的问题,以前也遇到过,没有深究,通过查阅资料,发现Exception类并不是所有的异常都能抛出。如下图所示
}catch(Exception ex){
System.out.println("main thread error == " + ex.getMessage());
获取的getmessage = null.
Exception的父类Throwable中,有getMessage方法,该方法其实返回的就是detailMessage,此处调试时,detailMessage为null,那通过getMessage方法当然就取到的值 自然也为null。
/**
* Returns the detail message string of this throwable.
*
* @return the detail message string of this {@code Throwable} instance
* (which may be {@code null}).
*/
public String getMessage() {
return detailMessage;
}
改进方法是,通过获取原始的throwable事件来捕获异常,既通过接口 ex.getCause().getMessage()获取异常消息
或者直接 利用Logger类 logger.error("msg", ex);直接log异常事件,如下图所示。
}catch(Exception ex){
System.out.println("main thread error == " + ex.getCause().getMessage());
if(LOGConfig.getInstance().isbLog_Debug())
logger.error("msg", ex);
ex.printStackTrace();
}