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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值