何时捕获java.lang.Error?

何时捕获java.lang.Error?

在什么情况下应该抓住java.lang.Error在申请上


慕丝7291255
浏览 819回答 3
3回答

蓝山帝景

一般都不会。但是,有时需要捕获特定的错误。如果您正在编写框架-ish代码(加载第三方类),那么最好捕获LinkageError(没有找到类def、不满意的链接、不兼容的类更改)。我还看到了一些愚蠢的第三方代码抛出了大量错误,所以您也必须处理这些错误。顺便说一句,我不确定不可能从OutOfMemory中恢复过来。

阿晨1998

一般来说,你应该总是抓住java.lang.Error并将其写入日志或将其显示给用户。我每天都在支持和看到程序员无法告诉程序中发生了什么。如果您有一个守护进程线程,那么必须阻止它被终止。在其他情况下,您的应用程序将正确工作。你只应该抓住java.lang.Error在最高层。如果您查看错误列表,就会发现大多数错误都可以处理。例如,ZipError在读取损坏的zip文件时发生。最常见的错误是OutOfMemoryError和NoClassDefFoundError,这在大多数情况下都是运行时问题。例如:int length = Integer.parseInt(xyz);byte[] buffer = new byte[length];能产生一个OutOfMemoryError但这是一个运行时问题,没有理由终止您的程序。NoClassDefFoundError主要发生在库不存在或使用另一个Java版本时。如果它是程序的一个可选部分,那么您不应该终止您的程序。我可以给出更多的例子来说明为什么抓到它是个好主意。Throwable并产生有用的错误消息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript