java异常处理机制中支持自定义异常
程序员自己定义的异常在异常处理中可以实现,好处是比较的灵活
自定义异常类 - 未满18岁异常
定义一个异常类继承父类Exception或者是RuntimeException
代码示范:
子类:继承Exception
package Test15_Demo.Demo09;/*
@create 2020--12--03--15:41
*/
public class U18Exception extends Exception {//或者可以继承RuntimeException
public U18Exception() {
super();//获取父类的无参构造
}
//定义有参构造
public U18Exception(String massage) {
super(massage);//获取父类的有参构造
}
}
测试类(自定义异常):
package Test15_Demo.Demo09;/*
@create 2020--12--03--15:47
*/
import java.util.Scanner;
public class U18ExceptionTest {
//如果年龄小于18,就是未成年,不能注册婚恋网
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年龄:");
int age = sc.nextInt();
//判断
if (age < 18) {
//调用自定义异常
//1.创建自定义异常对象
U18Exception u18 = new U18Exception("年龄小于18岁");
//2.抛出异常
try {
throw u18;
} catch (U18Exception e) {
e.printStackTrace();
System.out.println("年龄不满足注册婚恋网的要求!");
}
}
// Test15_Demo.Demo09.U18Exception: 年龄小于18岁
// at Test15_Demo.Demo09.U18ExceptionTest.main(U18ExceptionTest.java:23)
// 年龄不满足注册婚恋网的要求!
//另一种写法 - 手动创建异常对象 - 代码的示范
try {
throw new RuntimeException("我产生了一个运行时的异常");
} catch (Exception e) {
System.out.println("直接创建一个RuntimeException对象");
}
}
}