您将如何决定,何时抛出异常以及何时捕捉异常?Java中的高效异常处理
1
A
回答
10
“效率”在这里不应该是一个问题。
当您遇到代码无法处理的情况(您希望调用者执行某些操作)时,会引发异常。当你可以做些什么的时候(如果你的调用者也应该做些什么的话,你可能仍然想重新抛出它或另一个异常),你会发现一个异常。
当您决定是否检查错误条件以避免后续异常或仅调用一些代码并在之后处理异常时,效率可能会很有用。这里的经验法则是,例外应该只发生在例外的情况下,因为它们会产生相当多的运行时间开销(当它们实际被抛出时,纯粹的catch块没有成本)。
4
这是一个高度争议的话题,很多人都有强烈的意见。一些有用的链接
http://www.ibm.com/developerworks/java/library/j-jtp05254.html
http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html
最喜欢春天的流行的框架相信只有处理异常的理念,如果你可以做一些关于他们,因此,他们投入更多的运行时异常。这是有道理的,因为抛出和捕获检查异常是添加不必要的代码。
还有一个问题。在应用程序中的某个时刻,尤其是接近UI界面层(例如Web应用程序的servlet),您需要确保正确处理各种异常并捕获它们。否则,用户会看到500错误,这绝对不是一个理想的体验。在某个时候,您想让用户了解哪里出了问题。如果它的运行时异常,可能更好的说,未知的错误,记录它并发送邮件给系统管理员跟踪。
所以是的,只处理您期望的异常,并且可以在整个应用程序中以建设性的方式进行处理。但是,当您接近应用程序的用户界面层时,请对此规则进行例外。
相关问题
- 1. 高效的异常处理技术
- 2. Java中的异常处理
- 3. Java中的异常处理
- 4. Java异常处理
- 5. Java异常处理
- 6. 处理java异常
- 7. Java异常处理
- 8. java异常处理
- 9. Java异常处理
- 10. Infinity的Java异常处理
- 11. Java异常处理方法
- 12. Java EE/Struts异常处理
- 13. Java SpringBoot异常处理
- 14. Java异常处理策略
- 15. 核心-java异常处理
- 16. Java异常处理查询
- 17. Java异常处理概念
- 18. Java异常处理:/ zeo
- 19. Java异常处理机制
- 20. Morphia中的异常处理(Java)
- 21. Java中的简单异常处理
- 22. java中的多重处理异常
- 23. 在java中处理异常的框架
- 24. 高校分配的异常处理
- 25. 未处理的异常:参数无效
- 26. WP7 - 处理基于异步JAVA的SOAP服务异常处理
- 27. Eclipse - 在NetBeans中处理Java异常
- 28. 如何处理异常处理代码中的异常?
- 29. 无效操作异常是未处理
- 30. 如何在Flex中处理异常Java异常..?
是否真的有没有成本,有一个catch块?我认为在设置和拆除额外的面向异常的框架时,即使没有抛出异常,也会有开销(尽管可能与您的实际代码相比很小)。 – 2010-12-16 04:50:14
谢谢蒂洛。 – Mudassir 2010-12-16 05:45:55