java异常处理机制中支持自定义异常
程序员自己定义的异常在异常处理中可以实现,好处是比较的灵活

自定义异常类 - 未满18岁异常

定义一个异常类继承父类Exception或者是RuntimeException

代码示范:

子类:继承Exception

  1. package Test15_Demo.Demo09;/*
  2. @create 2020--12--03--15:41
  3. */
  4. public class U18Exception extends Exception {//或者可以继承RuntimeException
  5. public U18Exception() {
  6. super();//获取父类的无参构造
  7. }
  8. //定义有参构造
  9. public U18Exception(String massage) {
  10. super(massage);//获取父类的有参构造
  11. }
  12. }

测试类(自定义异常):

  1. package Test15_Demo.Demo09;/*
  2. @create 2020--12--03--15:47
  3. */
  4. import java.util.Scanner;
  5. public class U18ExceptionTest {
  6. //如果年龄小于18,就是未成年,不能注册婚恋网
  7. public static void main(String[] args) {
  8. Scanner sc = new Scanner(System.in);
  9. System.out.println("请输入年龄:");
  10. int age = sc.nextInt();
  11. //判断
  12. if (age < 18) {
  13. //调用自定义异常
  14. //1.创建自定义异常对象
  15. U18Exception u18 = new U18Exception("年龄小于18岁");
  16. //2.抛出异常
  17. try {
  18. throw u18;
  19. } catch (U18Exception e) {
  20. e.printStackTrace();
  21. System.out.println("年龄不满足注册婚恋网的要求!");
  22. }
  23. }
  24. // Test15_Demo.Demo09.U18Exception: 年龄小于18岁
  25. // at Test15_Demo.Demo09.U18ExceptionTest.main(U18ExceptionTest.java:23)
  26. // 年龄不满足注册婚恋网的要求!
  27. //另一种写法 - 手动创建异常对象 - 代码的示范
  28. try {
  29. throw new RuntimeException("我产生了一个运行时的异常");
  30. } catch (Exception e) {
  31. System.out.println("直接创建一个RuntimeException对象");
  32. }
  33. }
  34. }