java中,想记录异常信息,该如何获得发生异常的类名和方法名呢?不要用log4j等。
StackTraceElement[]st=e.getStackTrace();stringexclass=st[0].getClassName();这样不行,得到的不是...
StackTraceElement[] st = e.getStackTrace();
string exclass=st[0].getClassName();
这样不行,得到的不是发生异常的类,而是the name of the exception.
StackTraceElement[] st = e.getStackTrace();
string exclass=st[0].getClassName().toString();
这样不行,得到的不是发生异常的类,而是the name of the exception. 展开
string exclass=st[0].getClassName();
这样不行,得到的不是发生异常的类,而是the name of the exception.
StackTraceElement[] st = e.getStackTrace();
string exclass=st[0].getClassName().toString();
这样不行,得到的不是发生异常的类,而是the name of the exception. 展开
4个回答
展开全部
我觉得你写的是对的
StackTraceElement[] st = ex.getStackTrace();
for (StackTraceElement stackTraceElement : st) {
String exclass = stackTraceElement.getClassName();
String method = stackTraceElement.getMethodName();
System.out.println(exclass);
System.out.println(method);
}
}
这个就是整个异常抛出的栈结构啊
StackTraceElement[] st = ex.getStackTrace();
for (StackTraceElement stackTraceElement : st) {
String exclass = stackTraceElement.getClassName();
String method = stackTraceElement.getMethodName();
System.out.println(exclass);
System.out.println(method);
}
}
这个就是整个异常抛出的栈结构啊
更多追问追答
追问
谢谢啊,是我想错了。获取当前类名和方法名怎么获取?
追答
?
exclass这个就是当前类名
method就是当前异常处的方法名
比如
public static void getA() {
try {
throw new Exception();
} catch (Exception ex) {
StackTraceElement[] st = ex.getStackTrace();
for (StackTraceElement stackTraceElement : st) {
String exclass = stackTraceElement.getClassName();
String method = stackTraceElement.getMethodName();
System.out.println(new Date() + ":" + "[类:" + exclass + "]调用"
+ method + "时在第" + stackTraceElement.getLineNumber()
+ "行代码处发生异常!异常类型:" + ex.getClass().getName());
}
}
}
调用后打印结果就是
Thu Sep 27 14:59:41 CST 2012:[类:AAA]调用getA时在第6行代码处发生异常!异常类型:java.lang.Exception
Thu Sep 27 14:59:41 CST 2012:[类:sss]调用main时在第4行代码处发生异常!异常类型:java.lang.Exception
展开全部
楼主你问的这个问题很有水平啊 你要获得方法名和类名 建议你Debug跟踪一下 或者1楼写的那样看看什么异常 查查api
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用的st应该转换成String
追问
谢谢,刚才我随便写的,没注意。但我要问的不是这个问题。
追答
try {
//代码块
} catch (Exception e) {
System.out.println(e.getMessage());}
这样就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
try {
//代码块
} catch (Exception e) {
System.out.println(e.getMessage());
}//这样就可以捕获你的错误
//代码块
} catch (Exception e) {
System.out.println(e.getMessage());
}//这样就可以捕获你的错误
追问
是我没说明白么?我想获得发生异常的类名,方法名,并把他们单独存放在相应的变量里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询