今天在处理异常日志保存过程中,想要获取到异常抛出在具体在那个文件,哪个类下的哪个方法中的具体第几行,所以具体实现如下
try{
Integer adminID = Integer.parseInt(adminId);
XxAdmin admin = adminRepository.findOne(adminID);
model.addAttribute("admin",admin);
}catch (Exception e){
StackTraceElement stackTraceElement = e.getStackTrace()[0];
String errorMsg = "文件名:"+stackTraceElement.getFileName()+
"\r\n类名:"+stackTraceElement.getClassName()+
"\r\n方法名:"+stackTraceElement.getMethodName()+
"\r\n抛出异常行号:"+stackTraceElement.getLineNumber()+
"\r\n机构ID异常,无法获取本机构信息:"+e;
System.out.println(errorMsg);
logger.error(errorMsg);
}
对于堆栈【先进后出】的数组下标,可以根据自己的需求,看是需要打印出最上层的异常行号还是外层调用它的方法的异常行号!!!