我有一个静态的初始化块,并从中抛出一个ExceptionInInitializerError
异常。
有什么办法可以通过这个异常,并从这个类访问其他字段和方法? 谢谢。通过ExceptionInInitializerError传递
-1
A
回答
0
通过调用来启动包含静态块的类到try块中并捕获ExceptionInInitializerError
。像下面这样:
try{
ClassWithStaticBlock cb = new ClassWithStaticBlock();
}
catch(ExceptionInInitializerError ex){
}
+0
一个不会捕获ExceptionInInitializerError。 – Natix 2014-04-23 14:36:42
2
ExceptionInInitializerError背后的主要原因是,当JVM遇到无法处理的意外情况时,JVM将抛出上述错误。 ExceptionInInitializerError
可以被捕获,虽然你不应该捕获Error,但它实际上不可能从它中恢复,因为发生异常的类不可用于进一步的使用(例如实例化类),产生一个NoClassDefFoundError.
您可以参考到JLS - Detailed Initialization Procedure。
相关问题
- 1. 通过POST传递“&”
- 2. 通过值传递
- 3. 通过引用传递与值传递
- 4. Java是通过值传递还是通过引用传递?
- 5. 通过asmx传递集合
- 6. 通过URL传递参数
- 7. 通过dataTransfer传递对象
- 8. 通过JQuery/Ajax传递值
- 9. 通过URL传递值
- 10. 通过URI传递JSON
- 11. 通过url传递参数
- 12. 通过UICollectionView传递数据
- 13. 通过AJAX传递dataURL
- 14. 通过url传递参数
- 15. 通过引用传递流
- 16. 通过AJax传递变量
- 17. 通过PayPal传递选项
- 18. 通过performSelectorOnMainThread传递原语
- 19. 通过ssh传递$ PS1
- 20. 通过传递其ID
- 21. 通过层传递类型
- 22. 通过Javascript传递PHP值
- 23. 传递变量通过link_to
- 24. 通过url传递值
- 25. 传递数组通过AJAX
- 26. 通过NavigationController传递数据
- 27. Swift 2.0通过值传递
- 28. 通过Ajax传递参数
- 29. 通过Ajax传递MySQL
- 30. 通过segue传递数据
什么是错在该块? – NINCOMPOOP 2013-04-29 07:04:48
我知道什么是错的,可以错的,但我只想知道是否有一种方法(希望不是)从这个错误中恢复。 – Roxana 2013-04-29 07:12:31