Java 实施异常使用简单原则
发布时间:2021-11-21 15:16:17 所属栏目:教程 来源:互联网
导读:定义异常: 尽量给自己应用量身定制一套异常类,反应各种不同的错误,以便构建统一的、健壮的API。 应用每层定义统一的接口异常类,而不是简单抛出来自实现遇到的异常,否则实现一经改变,原来的异常可能会变化,接口可能也需要跟着更改。 给每个异常和错误
|
定义异常: 尽量给自己应用量身定制一套异常类,反应各种不同的错误,以便构建统一的、健壮的API。 应用每层定义统一的接口异常类,而不是简单抛出来自实现遇到的异常,否则实现一经改变,原来的异常可能会变化,接口可能也需要跟着更改。 给每个异常和错误定义统一的标识,如错误码,方便根据错误码找到详细的错误信息以及支持国际化,方便统一的异常处理框架。 抛出异常: 如果一个异常是致命的,不可恢复的,或者调用者去捕获它没有任何益处,使用unChecked异常。 如果一个异常是可以恢复的,可以被调用者正确处理的,使用checked异常。 在使用unChecked异常时,必须在在方法声明中详细的说明该方法可能会抛出的unChekced异常,由调用者自己去决定是否捕获unChecked异常 异常信息中精确描述何种操作导致失败(如果有,最好包括参数数据),以及可能的恢复或者处理方法。 记录异常: 异常应该在最初产生的位置记录! 如果必须捕获一个无法正确处理的异常,仅仅是把它封装成另外一种异常往上抛出,不必再次把已经被记录过的异常再次记录。 如果捕获到一个异常,但是这个异常是可以处理的,则无需要记录异常 捕获到一个未记录过的异常或外部系统异常时,应该记录异常的详细信息 给应用定义统一的异常记录类,增加额外的应用信息到异常日志。 处理异常: 异常捕获时由子类到父类过滤逐级分开处理。 try{..}块最好只包含可能抛出异常的语句,语句越少越好。 调用的函数可能抛出unchecked异常时,即使不捕获异常,也应该注意使用try{...}finally{...}释放该释放的资源;相对checked异常,我们都记得用try{...}catch{...}finally{...}。 ![]() (编辑:大同站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


