如何获取异常堆栈消息?

NoReady 2005-03-25 12:53:42
1、我知道用getStackTrace()可以获取,但它返回的不是字符串类型的,如果用toString()方法,返回的是类名,而不是异常消息。
2、printStackTrace()只能将异常打印出来。
3、getMessage()不行。

那如何取得异常堆栈消息的字符串表示呢???
...全文
1030 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
NoReady 2005-03-25
  • 打赏
  • 举报
回复
谢谢以上所有的热心的网友。问题已经解决:从eclipse中看到了它的实现,也就是jFresH_MaN所说的方法。

几天下来,感觉java和.net还是有区别的,虽然都是面向对象的。尤其有些语言特性,对设计人员来说需要清楚的了解的。
scarecrow81 2005-03-25
  • 打赏
  • 举报
回复
//将异常内容输出到文件
public void logError( Exception ex ) throws IOException
{
File log = new File( "log.txt" );
DataOutputStream dos = new DataOutputStream( new FileOutputStream( log ) );
ex.printStackTrace( new PrintStream( dos ) );
dos.flush();
..............
}

这样就可以拉。看你需要传什么参数过去了
craigavon 2005-03-25
  • 打赏
  • 举报
回复
try{
}
catch(){
e.printStackTrace();
}
这样应该可以看到错误
chenxb1980 2005-03-25
  • 打赏
  • 举报
回复
try{
//----
}
catch( Exception e)
{
ByteArrayOutputStream buf = new ByteArrayOutputStream();
e.printStackTrace(new PrintWriter(buf, true));
String expMessage = buf.toString();
}
007remember 2005-03-25
  • 打赏
  • 举报
回复
o
学习ing
NoReady 2005-03-25
  • 打赏
  • 举报
回复
TO:DreamDragon_NEU(梦龙)

因为我们在封装适合于自己公司的日志组件及异常组件。所以不考虑用log4j.
DreamDragon_NEU 2005-03-25
  • 打赏
  • 举报
回复
为什么不考虑用第三方包实现楼主的需求,比如log4j
NoReady 2005-03-25
  • 打赏
  • 举报
回复
TO :jFresH_MaN(受不了你了!!呆鸟!!啊!!啊!!啊!!)

如何遍历呢?因为我以前一直用.net,刚接触java,所以边最基础的东西还不清楚的,你能说清楚点吗?

-----------
TO: 007remember(绿原)
我的原意是要把异常链消息交给另一个组件保存在一个文件中,因为打印的方法只能在调试程序时使用,不可能在系统上线后还用打印的方法。
007remember 2005-03-25
  • 打赏
  • 举报
回复
个人建议:
您的最终目的是要看看哪里出错了(个人理解)
您用调试工具(debug)
直接查看内存块信息
(个人观点,仅供参考)
jFresH_MaN 2005-03-25
  • 打赏
  • 举报
回复
StatckTraceElement [] ete=e.getStatckTrace();
然后遍历

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧