JAVA异常处理分析(中)
2017-09-18 17:52
246 查看
在使用java异常处理机制时候我们会发现有些异常抛出后可以不需要进行抓取处理,而有些异常必须要进行抓取处理,这是个什么情况呢?
设计理念猜想:
有一些场景的异常,是可以不需要处理或是经常不会去使用备选方案的,比如Error大多用于程序错误直接终止程序运行,那么你的备选方案根本无用,在比如RuntimeException 这些异常都是由于程序在运行时候出现的程序错误可以说就是传说中的bug,是通过修改程序后可以避免的。那么也不需要进行抓取处理选择备选方案。
所以:
对于Error 类以及子类和RuntimeException以及子类是可以不用抛出异常,而且抛出异常也可以不被强制进行抓取处理的。但这并不代表这些异常不能被抓取处理,同样它仍然可以被抓取处理。
而:
对于Exception类或Throwable类以及自定义的子类抛出去是要强制进行异常的处理的。具体表现如下:
设计理念猜想:
有一些场景的异常,是可以不需要处理或是经常不会去使用备选方案的,比如Error大多用于程序错误直接终止程序运行,那么你的备选方案根本无用,在比如RuntimeException 这些异常都是由于程序在运行时候出现的程序错误可以说就是传说中的bug,是通过修改程序后可以避免的。那么也不需要进行抓取处理选择备选方案。
所以:
对于Error 类以及子类和RuntimeException以及子类是可以不用抛出异常,而且抛出异常也可以不被强制进行抓取处理的。但这并不代表这些异常不能被抓取处理,同样它仍然可以被抓取处理。
public class Test { public static void testException(){ throw new RuntimeException("exception"); } public static void main(String[] args) { testException(); }
而:
对于Exception类或Throwable类以及自定义的子类抛出去是要强制进行异常的处理的。具体表现如下:
public class Test { public static void testException() throws Exception { throw new Exception("exception"); } public static void main(String[] args) { try { testException(); }catch (Exception e){ e.printStackTrace(); } } }
相关文章推荐
- 【java 中的connection reset 异常处理分析】
- JAVA异常处理分析高级进界(下)
- java中异常的处理和分析
- J2SE综合:JAVA异常处理方式的区别和分析
- Java异常处理实例分析--六种异常处理的陋习
- 异常管理 - Java异常处理分析 (Unchecked Exception VS Checked Exception)
- JAVA异常处理原则和log4j输出详细异常分析
- Java异常机制及异常处理分析
- java.util.ConcurrentModificationException异常分析及处理
- (转)J2SE综合:JAVA异常处理方式的区别和分析。
- Java Mysql连接池配置和案例分析--超时异常和处理
- JAVA异常处理方式的区别和分析
- 【java 中的connection reset 异常处理分析】
- Java异常处理实例分析
- Java Mysql连接池配置和案例分析--超时异常和处理
- JAVA异常处理原则和log4j输出详细异常分析
- J2SE综合:JAVA异常处理方式的区别和分析
- JAVA异常处理原则和log4j输出详细异常分析
- J2SE综合:JAVA异常处理方式的区别和分析
- Java异常处理的陋习展播