0

我经常在 Blackberry 文档中看到 Throwable 的 catch 子句,例如Network API docs。我的感觉是,这在 Java 中通常不是一个好的做法。

黑莓编程中有这个原因吗?

它是否与Throwables的堆栈跟踪生成有关?

4

4 回答 4

2

当您在 BlackBerry 应用程序中捕获 Throwable 时,它​​不仅会保留堆栈跟踪,还会将该堆栈跟踪保存在设备事件日志中。 应用程序本身无法获取堆栈跟踪,因此很遗憾您无法自动收集堆栈跟踪。

要查看堆栈跟踪,请打开事件日志查看器。对于带有物理键盘的黑莓,按住“Alt”,然后按 LGLG 以显示事件日志。

于 2011-03-11T01:36:05.233 回答
1

阅读java.lang.Error的文档,它是 Throwable 的子类,你会发现捕获 Throwable 的问题。

它说:

Error 是 Throwable 的子类,表示合理的应用程序不应尝试捕获的严重问题。

例如,您最终可能会无意中捕获 VirtualMachineError,指示整个 VM 处于损坏状态。将一些东西放在 finally 块中以在损坏的 VM 上运行似乎不是一个好主意。

于 2011-03-11T00:22:30.557 回答
0

我不认为有什么特别的原因。见评论:

} catch (Throwable t) { // 还可以捕获特定异常以包含针对不同类型的特殊处理

这意味着该示例是基本的。并且有一个错字和一个不好的做法。因此,如果可能,请捕获特定异常。

于 2011-03-10T23:34:27.410 回答
0

在 BB 平台上,如果 Throwable 被捕获,它会保留堆栈跟踪并通常将其呈现在屏幕上,在用户面前爆炸。对用户体验不是很好:(

当捕获到异常(和扩展类)时,出于效率原因,堆栈跟踪将被丢弃。

于 2011-03-10T23:55:27.493 回答