CodeMonkey流水账:Java显示完整异常信息

JAVA异常不能只用getMessage/某些异常message文本中不包含异常的名称

对于需要中断运行的异常,我们需要输出到调度系统中,供运维人员参考(详细信息输出到日志)。
但是Java的输出如下,是不行的。虽然大部分时候没有问题但是偶尔报错信息完全看不懂

catch (Exception e) {
    
    
	logger.log(Level.SEVERE, "Catch error!",e);
	TNU.writeLog(TNU.LogType.ERROR, e.getMessage());
}

所谓偶尔就是比如这个,界面上的错误信息,只显示个“2”……的确很二。
在这里插入图片描述
所以把getMessage改成toString。
才看出来是数组越界了。

catch (Exception e) {
    
    
	logger.log(Level.SEVERE, "Catch error!", e);
	TNU.writeLog(TNU.LogType.ERROR,e.toString());
}

在这里插入图片描述

C++和Delphi微笑路过

而C++,Delphi就从不会有这个问题(绝大部分的Java异常的Message也能看懂)。

catch (exception &e)
{
    
    
	FTNU::WriteLog(FTNU::eError, e.what());
}
except
    on e: exception do
    begin
      FTNU.WriteLog(eError,pChar(e.Message),[]);
    end;
end;

猜你喜欢

转载自blog.csdn.net/ddrfan/article/details/105712308