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.
展开
 我来答
秒杀腹黑菟
2012-09-27 · TA获得超过502个赞
知道小有建树答主
回答量:142
采纳率:100%
帮助的人:70万
展开全部
我觉得你写的是对的
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
百度网友0de7e77
2012-09-27 · 超过14用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:20.8万
展开全部
楼主你问的这个问题很有水平啊 你要获得方法名和类名 建议你Debug跟踪一下 或者1楼写的那样看看什么异常 查查api
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fly漫长的等待
2012-09-27
知道答主
回答量:40
采纳率:0%
帮助的人:21.8万
展开全部
使用的st应该转换成String
追问
谢谢,刚才我随便写的,没注意。但我要问的不是这个问题。
追答
try {
//代码块
} catch (Exception e) {
System.out.println(e.getMessage());}
这样就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自娱自乐小Y
2012-09-27 · 超过11用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:25.8万
展开全部
try {
//代码块

} catch (Exception e) {
System.out.println(e.getMessage());
}//这样就可以捕获你的错误
追问
是我没说明白么?我想获得发生异常的类名,方法名,并把他们单独存放在相应的变量里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式