自定义异常类

虽然Java中已经有很多已经定义好的异常类了,但是有时候可能不能很好的满足我们的需求,这个时候我们就可以自己书写一个异常类,在程序中抛出了。

自定义一个输入名字异常,当名字为空,或者<5个字符,>20个字符时,则认为是输入异常:

首先我们需要先定义一个异常类:继承Exception类或者RuntimeException类

package com.dh.exception;

public class InputException extends Exception{

    public InputException() {
    }

    //用于传递异常对象信息,在发生异常时控制台输出
    public InputException(String message) {
        super(message);
    }
}

然后书写一个测试方法,在方法内定义如何算发生异常,并在发生异常时抛出我们自己写的异常类对象

这里用到一个新的关键字,throw,用于在方法体中抛出一个异常类对象,在本方法体中采用两种方式处理,但是一般不用try...catch操作,你自己抛的,自己有catch住,就没意思了,所以一般使用throws抛出。

package com.dh.exception;

public class Test {

    public static void inputName(String name) throws InputException {
        if(name == null ||name.length()<5 ||name.length()>20){
            //throw出我们自定义异常类对象
           throw new InputException("名字输入不合法!");
        }
    }

    public static void main(String[] args) {
        try {
            inputName("a");
        } catch (InputException e) {
            e.printStackTrace();
        }
    }
}

当程序发生异常时,结果:

com.dh.exception.InputException: 输入名字不合法!
	at com.dh.exception.Test.inputName(Test.java:8)
	at com.dh.exception.Test.main(Test.java:18)

Process finished with exit code 0

程序就输出了我们自定义的异常信息啦!

总结:

  1. 书写一个类,看需求继承RuntimeException,或者是Exception;
  2. 在类中书写两个构造方法,一个无参构造,一个为参数为String的有参构造,并且调用父类的有参构造;
  3. 确定抛出异常的条件,在里面使用throw关键字,throw new 自定义异常类,并且在该方法声明中使用throws抛给调用者;
  4. 处理该抛出的异常。
posted @ 2021-01-25 21:06  deng-hui  阅读(1148)  评论(0编辑  收藏  举报