当前位置:  首页>> 技术小册>> Java语言基础7-Java中的异常

7.1 概述

  • Java 中的不同异常类,分别表示某一种具体的异常情况,但是在开发中总会有些异常情况是 Java 中预先没有定义好的,此时我们需要根据自己业务的异常情况来定义异常类,比如:年龄负数问题,考试成绩负数问题等等。
  • 自定义异常类:
    • ① 自定义编译时异常类:自定义类并继承于 java.lang.Exception 。
    • ② 自定义运行时异常类:自定义类并继承于 java.lang.RuntimeException(实际开发中,这种用的很多)。

7.2 应用示例

  • 示例:
  1. package com.github.demo5;
  2. /**
  3. * @author maxiaoke.com
  4. * @version 1.0
  5. *
  6. */
  7. public class SexException extends RuntimeException {
  8. public SexException() {}
  9. public SexException(String message) {
  10. super(message);
  11. }
  12. }
  1. package com.github.demo5;
  2. /**
  3. * @author maxiaoke.com
  4. * @version 1.0
  5. *
  6. */
  7. public class AgeException extends RuntimeException {
  8. public AgeException() {}
  9. public AgeException(String message) {
  10. super(message);
  11. }
  12. }
  1. package com.github.demo5;
  2. /**
  3. * @author maxiaoke.com
  4. * @version 1.0
  5. *
  6. */
  7. public class Person {
  8. /**
  9. * 姓名
  10. */
  11. private String name;
  12. /**
  13. * 年龄
  14. */
  15. private int age;
  16. /**
  17. * 性别
  18. */
  19. private String gender;
  20. public Person() {}
  21. public Person(String name, int age, String gender) {
  22. this.name = name;
  23. if (age < 0 || age > 150) {
  24. throw new AgeException("age必须在0~150之间");
  25. }
  26. this.age = age;
  27. if (!"男".equals(gender) || !"女".equals(gender)) {
  28. throw new SexException("性别必须是男或女");
  29. }
  30. this.gender = gender;
  31. }
  32. @Override
  33. public String toString() {
  34. return "Person{" + "name='" + this.name + '\'' + ", age=" + this.age + ", gender='" + this.gender + '\'' + '}';
  35. }
  36. }
  1. package com.github.demo5;
  2. /**
  3. * @author maxiaoke.com
  4. * @version 1.0
  5. *
  6. */
  7. public class PersonTest {
  8. public static void main(String[] args) {
  9. Person person = new Person("张三", 180, "呵呵");
  10. System.out.println("person = " + person);
  11. }
  12. }