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;