重构——55以异常取代错误码(Replace Error Code with Exception)

以异常取代错误码(Replace Error Code with Exception)

某个函数返回一个特定的错误码,用以表示某种错误情况;改用异常

一、动机

代码的可理解性使我们虔诚追求的目标

二、做法

1、决定应该抛出受控异常还是非受控异常

2、如果调用者有责任在调用前检查必要状态,就抛出非受控异常

3、找到该函数的所有调用者,对它们进行相应调整,让它们使用异常

4、修改该函数的签名,令它反映出新用法

时间: 2024-09-20 15:03:14

重构——55以异常取代错误码(Replace Error Code with Exception)的相关文章

阿里云邮箱系统登录异常,(错误码6),请稍后重试。(H058811A57YLFD)

我的阿里云邮箱 hi31590483@aliyun.com ,登陆后显示:系统登录异常,(错误码6),请稍后重试.(H058811A57YLFD),怎么解决?

重构——22以对象取代数组(Replace Array with Object)

以对象取代数组(Replace Array with Object) 你有一个数组,其中的元素各自代表不同的东西:以对象替换数组.对于数组中的每个元素,以一个字段来表示 一.动机 数组应该只用于"以某种顺序容纳一组相似对象" 二.做法 1.新建一个类表示数组所拥有的信息,并在其中以一个public字段保存原先的数组 2.修改数组的所有用户,让它们改用新类的实例 3.编译,测试 4.逐一为数组元素添加取值/设值函数.根据元素的用途,为这些访问函数命名.修改客户端代码,让它们通过访问函数取

重构——33以字段取代子类(Replace Subclass with Fields)

以字段取代子类(Replace Subclass with Fields) 你的各个子类的唯一差别只在"返回常量数据"的函数上:修改这些函数,使他们返回超类的某个新增字段,然后销毁子类 一.动机 1.建立子类的目的,是为了增加新特性或变化其行为 2.子类中只有常量函数,实在没有足够的存在价值 二.做法 1.对所有子类使用Replace Constructor with Factory Method 2.如果有任何代码直接引用子类,令它改而引用超类 3.针对每个常量函数,在超类中声明一个

重构——49以函数取代参数(Replace Parameter with Methods)

以函数取代参数(Replace Parameter with Methods) 对象调用某个参数,并将结果作为参数,传递给另一个函数,而接受该参数的函数本身也能够调用前一个函数:让参数接受者去除该项参数,并直接调用前一个参数 一.动机 如果函数可以通过其他途径获得参数值,那么它就不应该通过参数取得该值 二.做法 1.如果有必要,将参数的计算过程提炼到一个独立的函数中 2.将函数本体内引用该参数的地方改为调用新建的函数 3.每次替换后,编译并测试 4.全部替换完成后,使用Remove Parame

重构——67以委托取代继承(Replace Inheritance with Delegation)

以委托取代继承(Replace Inheritance with Delegation) 1.某个子类只使用了超类接口中的一部分,或是根本不需要继承而来的数据 2.在子类中新建一个字段用以保存超类:调整子类函数,令它改而委托超类:然后去掉两者之间的继承关系 一.动机 超类中的许多操作并不真正适用于子类 二.操作 1.在子类中新建一个字段,使其引用超类的一个实例,并将它初始化为this 2.修改子类内的所有函数,让它们不再使用超类,转而使用上述那个受托字段.每次修改后,编译并测试 3.去除两个类之

重构——68以继承取代委托(Replace Delegation with Inheritance)

以继承取代委托(Replace Delegation with Inheritance) 你在两个类之间使用委托关系,并经常为整个接口编写许多极简单的委托关系:让委托类继承受托类 一.动机 需要受托类中的所有函数 二.做法 1.让委托端成为受托端的一个子类 2.编译 3.将受托字段设为该字段所处对象本身 4.去掉简单的委托函数 5.编译并测试 6.将所有其它涉及委托关系的代码,改为调用对象自身 7.移除受托字段

重构——30以类取代类型码(Replace Type Code with Class)

以类取代类型码(Replace Type Code with Class) 类之中有一个数值类型码,但它并不影响类的行为:以一个新的类替换该数值类型码 一.动机 让编译器可以进行类型检查,减少bug 二.做法 1.为类型码建立一个类 2.修改源类实现,并让它使用上述新建的类 3.编译,测试 4.对于源类中每一个使用类型码的函数,相应建立一个函数,让新函数使用新建的类 5.逐一修改源类用户,让它们使用新接口 6.每修改一个用户,编译并测试 7.删除使用类型码的新接口,并删除保存旧类型码的静态变量

Error错误码什么意思?怎么解决?

阿里云Mns出现API报错,错误码是:Error Error Message: 描述: 系统错误 详情查看: 阿里云API错误中心 https://error-center.aliyun.com/

Java异常封装(自己定义错误码和描述,附源码)

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 真正工作了才发现,Java里面的异常在真正工作中使用还是十分普遍的.什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己可以定义错误码和异常描述. 下面小宝鸽就为大家介绍一个Java异常简单封装的例子. 在给出异常分装例子之前,需要给大家普及Java里面的checked异常和unchecked异常的个概念. 一.checked异常