前几天写代码的时候,遇到一个需求,保存的时候如果重名则不执行保存,并抛出异常。但是当我抛出的不是运行时异常的时候,这个异常就需要一层层的捕获。就像下面这样:
|
|
或者这样
|
|
但是从一个程序员的角度,考虑,重名属于运行后进行操作才产生的异常,正常情况下应该抛出运行时异常,并且公司我最膜拜的架构师【据说是离神最近的男人】是已经封装好了异常,自定义运行时异常,因此就使用了运行时异常实现:
代码如下:
|
|
使用自定义运行时异常后,发现省事好多,异常并不需要一级一级的向上抛出或者在当前类捕获。
借助这个案例分析了下运行时异常的特点:
- A: 运行时期异常的概述:
- RuntimeException和他的所有子类异常,都属于运行时期异常。
NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常.- B:运行时期异常的特点
- a:方法中抛出运行时期异常,方法定义中无需throws声明,调用者也无需处理此异常。
- b:运行时期异常一旦发生,需要程序人员修改源代码。
设计原因:
运行异常,不能发生,但是如果发生了,程序人员停止程序修改源代码
运行异常: 一旦发生,不要处理,请你修改源代码,运行异常一旦发生,后面的代码没有执行的意义
这就是运行时异常的总结,就问还有谁。