java异常设计,Java异常设计方法

前些时候,把《Thinking in Java》中异常这一章翻出来再次研读,本人有些收获,并且有些观点和作者观点不太一致,共享之

1.异常的定义

一个系统中定义异常应遵循如下几个原则:

a. 系统中如果某个模块功能比较单一,建议将所有异常放在一个package内;如果某个模块有很多子模块,建议将异常放各个对应子模块内;

b. 异常名称必须是自定义的;

c. 自定义异常都继承之Exception(不要继承RuntimeException);

d. 所有异常含有含有两个构造器:一个缺省构造器,一个用于构建异常链的构造器。

示例如下:

public class MyException1 extends Exception{

public MyException1() {

}

public MyException1(Throwable cause) {

super(cause);

}

}

2.异常的处理

在异常处理程序中遵循如下原则:

a. 本方法能处理的异常,异常处理程序中就处理掉,不向外层传递;

b. 本方法不能处理的异常,必须使用异常链,封装为本模块的异常向上传递。

示例如下:

public class test {

public static void f() throws MyException1{

throw new MyException1();

}

public static void main(String[] args) throws MyException2{

try {

f();

} catch(MyException1 e) {

throw new MyException2(e);

}

}

}

【注】:Bruce   Eckel指出建议使用runtimeException封装异常。本人认为,在系统设计中不应该这么做,因为在开发实际系统是,各个模块开发人员不一样,如果开发人员用runtimeException封装了异常,其他使用该模块的开发人员很难知道模块中抛出了异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值