阿里巴巴Java开发手册 梳理笔记 - RuntimeException 应预先检查进行规避

阿里巴巴Java开发手册 梳理笔记 - RuntimeException 应预先检查进行规避

规约内容:html

2.1 异常处理

1. 【强制】 Java 类库中定义的一类 RuntimeException 能够经过预先检查进行规避,而不该该
经过 catch 来处理,好比: IndexOutOfBoundsException , NullPointerException 等等。
说明:没法经过预检查的异常除外,如在解析一个外部传来的字符串形式数字时,经过 catch
NumberFormatException 来实现。
正例: if (obj != null) {...}
反例: try { obj.method() } catch (NullPointerException e) {...}

扩展资料

另外一个角度看『异常』java

在 Exception 中,unchecked 异常是运行时异常,它们都继承自 RuntimeException, 不须要程序进行显式的捕捉和处理,
unchecked 异常能够进一步细分为3 类:

可预测异常(Predicted Exception)
常 见 的 可预 测 异 常 包 括 IndexOutOfBoundsException、NullPointerException 等, 基 于对 代 码 的 性 能 和 稳定性要求,此类异常不该该被产生或者抛出,而应该提早作好边界检查、空指针判断等处理。显式的声明或者捕获此类异常会对程序的可读性和运行 效率产生很大影响。

需捕捉异常(Caution Exception)
例如在使用 Dubbo 框架进行 RPC 调用时 产生的远程服务超时异常 DubboTimeoutException,此类异常是客户端必须显式处理的异常,不能因服务端的异常致使客户端不可用,此时处理方案能够是重试或者降级处理等。

可透出异常 (Ignored Exception) 
主要是指框架或系统产生的且会自行处理的异常,而程序无须关心。例如针对 Spring 框架中抛出的 NoSuchRequestHa ndlingMethodException 异常,Spring 框架会本身完成异常的处理,默认将自身抛出的异常自动映射到合适的状态码,好比启动防御机制跳转到 404 页面。

Java异常梳理正则表达式

常见的RuntimeException的子类
(1)ArithmeticException  算术异常
引起缘由: 分母不能为0
如何避免:除以前,先判断分母
(2)ClassCastException  类型转换异常
(3)IllegalArgumentException    非法参数异常
具有子类:NumberFormatException 数字格式异常
引发缘由:参数格式不合法
如何避免:经过某些技术,保证参数文本的有效格式(正则表达式,使用特殊字符制约格式)[0-9][a-z]
(4)IndexOutOfBoundsException 下标越界异常
具有两个子类:
ArrayIndexOutOfBoundsException 数组下标越界异常
StringIndexOutOfBoundsException 字符串下标越界异常
引发缘由:下标超过有效边界  [0, ds.length-1]
如何避免:操做下标过程当中避免越界
(5)NullPointerException   空指针异常
引发缘由:调用null引用的成员  属性或 方法
如何避免:调用以前先判断是否为空
资料摘取自:http://f.dataguru.cn/java-338689-1-1.html
相关文章
相关标签/搜索