我的代码如下所示,可以很好地显示消息,但无法找出任何方法来获取堆栈跟踪。
try {
throw new RuntimeException("This is bad stuff!");
} catch (Exception e ) {
mainForm.append("Exception: " + e.getMessage());
}
调用 e.printStackTrace() 会将它发送到我找不到的地方。
我的代码如下所示,可以很好地显示消息,但无法找出任何方法来获取堆栈跟踪。
try {
throw new RuntimeException("This is bad stuff!");
} catch (Exception e ) {
mainForm.append("Exception: " + e.getMessage());
}
调用 e.printStackTrace() 会将它发送到我找不到的地方。
看到这篇文章: http: //lwuit.blogspot.com/2008/12/redirecting-output-on-s60-devices.html
太糟糕了,没有 System.setErr(PrintWriter) 或 Thread.getStackTrace()
我认为这个问题没有(通用)解决方案
不,你不能。堆栈跟踪总是打印到 System.err 并且在 CLDC 中没有办法将 System.err 重定向到其他地方。
即使在 CLDC 1.1 中也不存在。希望 Sun 在未来的版本中包含错误重定向和输出流。日志记录/调试非常重要。
我创建了一个工具,可用于在 CLDC 中记录正确的堆栈跟踪。在http://jarrut.sourceforge.net上查看。它仍然很新,可能有一些粗糙的边缘,但它对我有用,我无法想象没有它来开发 MIDlet。使用它的最佳方法是将其与 microlog 结合使用。