java的异常处理涉及到程序流程的跳转,所以,虚拟机需要保存程序的执行流程,以便异常发生时能正确的跳转,这也就导致了使用异常时会引起额外的开销,所以,要谨慎地使用异常。
使用异常有如下几个原则:
1、尽量避免使用异常,将异常情况提前检测出来。
2、不要为每个可能会出现异常的语句都设置try和catch。
3、避免在方法中抛出(throw)或者捕获(catch)运行时异常RuntimeException和Error。
4、避免总是catch Exception或Throwable,而要catch具体的异常类。这样可以使程序更加清晰。
5、不要压制、隐瞒异常。将不能处理的异常往外抛,而不是捕获之后随便处理。
6、不要在循环中使用try...catch,尽量将try...catch放在循环外或者避免使用。
使用异常有如下几个原则:
1、尽量避免使用异常,将异常情况提前检测出来。
2、不要为每个可能会出现异常的语句都设置try和catch。
3、避免在方法中抛出(throw)或者捕获(catch)运行时异常RuntimeException和Error。
4、避免总是catch Exception或Throwable,而要catch具体的异常类。这样可以使程序更加清晰。
5、不要压制、隐瞒异常。将不能处理的异常往外抛,而不是捕获之后随便处理。
6、不要在循环中使用try...catch,尽量将try...catch放在循环外或者避免使用。
7、在catch Exception中不只要处理异常,有时还要出栈、对前面的一些变量进行处理,否则可能出现bug
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。异常之所以是一种强大的调试手段,在于其回答了以下三个问题:
- 什么出了错?
- 在哪出的错?
- 为什么出错?
在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们。有三个原则可以帮助你在调试过程中最大限度地使用好异常,这三个原则是:
- 具体明确
- 提早抛出
- 延迟捕获
http://blog.youkuaiyun.com/linweidong/article/details/5989889