我经常在Blackberry文档中看到Throwable的catch子句,比如Network API docs。我的感觉是,这在Java中通常不是一个好习惯。在黑莓Java中捕获Throwable:好主意?
黑莓编程有这个原因吗?
它是否与stack trace generation适用于Throwables?
我经常在Blackberry文档中看到Throwable的catch子句,比如Network API docs。我的感觉是,这在Java中通常不是一个好习惯。在黑莓Java中捕获Throwable:好主意?
黑莓编程有这个原因吗?
它是否与stack trace generation适用于Throwables?
当您在BlackBerry应用程序中捕获Throwable时,不仅会保留堆栈跟踪,还会将该堆栈跟踪保存在设备事件日志中。 There is no way for an app to get a stack trace itself,所以很遗憾,您无法自动收集堆栈跟踪。
要查看堆栈跟踪,请启动事件日志查看器。对于使用物理键盘的黑莓,请按住“Alt”,然后按L G L G调出事件日志。
我不认为有一个特别的原因。查看评论:
}赶上(的Throwable T){//还可以捕获特定的例外情况包括特殊hadling对于不同类型的
这意味着例子是基本的。并有一个错字和一个不好的习惯。所以如果可能的话赶上特定的例外
我觉得这个故事更多,因为Throwable似乎在任何地方都可以使用。 – 2011-03-10 23:57:57
捕捉Throwable对于生产应用来说是一个坏主意(请参阅我对原始问答的回复),但对于测试,原型和其他非面向客户的东西,它可能是合适的。 – seand 2011-03-11 00:02:13
在BB平台上,如果捕获到Throwable,它将保留堆栈跟踪并通常将其呈现在屏幕上,在用户的脸上爆炸。不是很好的UX :(
当异常(和扩展类)都陷入堆栈跟踪是出于效率的考虑扔掉。
我是BlackBerry 4.5到6.0的开发者,我可以告诉你它不会在屏幕上呈现堆栈跟踪。不知道你有什么想法。 – 2011-03-11 01:37:12
它可能不会一直发生,但我已经看到它发生的不足,我避免捕获Throwable。众所周知,BB OS会导致你看起来没有要求的UI效果。防爆。我在MDS连接中看到过与BES相关的SSL错误,实际上会导致设备端弹出窗口。附:自从4.1 – seand 2011-03-11 03:04:56
阅读java.lang.Error的文档,这是Throwable的子类,你会看到问题与追赶的Throwable
它说:
一个错误是Throwable的 一个子类,表示严重的问题,合理的应用程序 不应该尝试CA TCH。
例如,您最终可能无意中捕获VirtualMachineError,指示整个虚拟机处于损坏状态。将finally块中的东西放在虚拟机上运行似乎不是一个好主意。
以来,我一直在研究BB。我想知道他们为什么会这么做?我猜他们被误导了。 – 2011-03-11 01:16:28
我相信这个评论意味着你不应该试图对Error或者子类型NoClassDefFoundError,VirtualMachineError,FactoryConfigurationError,CryptoSelfTestError进行特殊处理。这并不排除日志记录或其他通用处理来通知您的应用中出现了问题。 – 2011-03-11 01:42:26
那么这是纯粹的面向开发(相对于生产)措施? – 2011-03-11 21:17:14