我正在尝试以以下方式记录堆栈跟踪,它运行良好,但我正在尝试找出是否有其他有效的方法来记录异常?
catch (SQLException e) {
LOG.error(
"Sql Exception: "
+ e.getStackTrace()[1].getClassName() + "."
+ e.getStackTrace()[1].getMethodName(), e);
throw e;
是:
LOG.error("Sql Exception", e);
请注意第二个参数e
。当Exception/Sthrowable像这样传入时,记录器会包含堆栈跟踪。无需手动(笨拙地)使用e.getStackTrace()
。
您不需要在代码中使用+ e.getStackTrace()[1].getClassName() + "." + e.getStackTrace()[1].getMethodName()
,这些信息是由记录器本身使用异常堆栈跟踪生成的。