java:记录抛出的异常

标签 java logging exception

在java中,我想记录一段代码抛出的异常:

try
{
    doRiskyThing();
}
catch(Throwable t)
{
    log.warn("too bad");
    throw t;
}

问题是现在我的方法必须声明它抛出 throwable。

另一方面,如果我将异常记录在finally block 中,我如何知道正在抛出什么异常(以及是否抛出任何异常)。

最佳答案

您至少可以为未检查的异常编写一个 catch 并为检查的异常编写 n 个 catch block 。

try{
    ..
}catch(RuntimeException e){
   log(e);
   throw e;
}catch(ExceptionException ..){
   log(e);
   throw e;
}

这不会更改您的方法的签名。捕获错误有点异味。嗯,记录和抛出异常也是一种味道。这将重复错误消息。

高级异常处理是 JDK 7 中从项目 coin 中删除的一项功能。

关于java:记录抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1516657/

相关文章:

AngularJS - 简单的 $scope console.log() 返回未定义

c++ - 如何处理非法地址删除

python - gammu.ERR_TIMEOUT - 树莓派

node.js - NodeJS 记录器 : winston. transports.DailyRotateFile 不是函数

javascript - 对象预期错误,javascript,jQuery

java - jboss 7.1 xalan 问题?

java - 只想填充二维数组的顶行和底行

java - <filter-mapping> 特定 URL

java - 有没有支持智能参数扩展、String.format等的java库

c# - Log4Net:将 C# 对象(除了 Exception)写入日志?