使用自定义异常
1. 自定义异常
1 package cn.javastudy.summary;
2
3 /**
4 * 自定义的一个异常类MyException,且是从Exception类继承而来
5 */
6 public class MyException extends Exception {
7
8 private int id;
9
10 /**
11 * 自定义异常类的构造方法
12 * @param message
13 * @param id
14 */
15 public MyException(String message,int id) {
16 super(message);//调用父类Exception的构造方法
17 this.id = id;
18 }
19
20 /**
21 * 获取异常的代码
22 * @return
23 */
24 public int getId() {
25 return id;
26 }
27
28 }
2.自定义异常测试
1 package cn.javastudy.summary;
2
3 import java.text.MessageFormat;
4
5 public class TestMyException {
6
7 //throws MyException,抛出我们自定义的MyException类的异常。
8 public void regist(int num) throws MyException {
9 if (num < 0) {
10 //使用throw手动抛出一个MyException类的异常对象。
11 throw new MyException("人数为负值,不合理", 1);
12 }
13 /**
14 * 注意:当我们抛出了异常之后,
15 * System.out.println(MessageFormat.format("登记人数:{0}",num));是不会被执行的。
16 * 抛出异常之后整个方法的调用就结束了。
17 */
18 System.out.println(MessageFormat.format("登记人数:{0}",num));
19 }
20
21 public void manage() {
22 try {
23 regist(-100);
24 } catch (MyException e) {
25 System.out.println("登记失败,错误码:"+e.getId());
26 e.printStackTrace();
27 }
28 System.out.println("操作结束");
29 }
30
31
32 public static void main(String[] args) {
33 TestMyException t = new TestMyException();
34 t.manage();
35 }
36
37 }
异常处理总结
养成良好的编程习惯,不要把错误给吞噬掉(即捕获到异常以后又不做出相应处理的做法,这种做法相当于是把错误隐藏起来了,可实际上错误依然还是存在的), 也不要轻易地往外抛错误,能处理的一定要处理,不能处理的一定要往外抛。往外抛的方法有两种,一种是在知道异常的类型以后,方法声明时使用throws把 异常往外抛,另一种是手动往外抛,使用“throw+异常对象”你相当于是把这个异常对象抛出去了,然后在方法的声明写上要抛的那种异常。