猿问
何时捕获java.lang.Error?
何时捕获java.lang.Error?
在什么情况下应该抓住
java.lang.Error
在申请上
慕丝7291255
浏览 819
回答 3
3回答
蓝山帝景
一般都不会。但是,有时需要捕获特定的错误。如果您正在编写框架-ish代码(加载第三方类),那么最好捕获LinkageError(没有找到类def、不满意的链接、不兼容的类更改)。我还看到了一些愚蠢的第三方代码抛出了大量错误,所以您也必须处理这些错误。顺便说一句,我不确定不可能从OutOfMemory中恢复过来。
0
0
0
阿晨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并产生有用的错误消息。
0
0
0
随时随地看视频
慕课网APP
相关分类
JavaScript
我要回答