代码实现
自定义异常类型主要实现代码
public class Exception_demo extends Exception{
//自定义异常,需要把自定义异常类继承于Exception异常类,自定义异常类属于异常类的子类
public Exception_demo(){
//构造方法也叫做构造器,构造方法的名字和类名称一致
super();
//没有指定参数的话 super()关键字就调用这个无参构造器
}
public Exception_demo(String info){
super(info);
//如果在创建自定义异常对象的时候,给予参数,就调用有参构造器
}
}
自定义异常类测试代码
/**
* 标题:Java中的自定义异常
* 作者:Nstar
* 时间:2020年3月23日
*/
//自定义异常类测试
public class Test25 {
public static void main(String[] args) { //入口方法
try {
System.out.println(exception_test(8,0));
//两个实参随便给,如果b=0就方法就抛出自定义类型的异常
//如果b不等于0就两数相除,打印出结果
//在此进行直接调用,由于受static关键字修饰,所以不用创建类的对象,直接调用
//被检查是否存在异常的代码
}
catch (Exception_demo e){
//catch用来捕获exception_test方法抛出的异常
e.printStackTrace(System.out); //捕获异常
//e.printStackTrace(System.out)打印异常信息
//方法括号里写 System.out,这是Java8死要求,不能在方法括号内采用字符串拼接
}
}
public static int exception_test(int a,int b)throws Exception_demo{
//public static int exception_test,定义静态的公共方法,返回值为int类型
//throws Exception_demo 表明此方法可能抛出一个或多个异常
if (b==0){
throw new Exception_demo("自定义异常,被除数不能为零");
//如果条件满足就抛出一个自定义类型的异常
//把异常抛给调用者
}
else {
//不满足就执行两数相除,并且返回int类型的值
int num = a / b;
return num;
}
}
}
执行结果
触发异常
(非自定义异常)
(自定义异常)
不触发异常