自定义异常概述和基本使用
- A:为什么需要自定义异常
- 通过名字区分到底是什么异常,有针对的解决办法
- 举例:人的年龄
- B:自定义异常概述
- 继承自Exception
- 继承自RuntimeException
- C:案例演示
- 自定义异常的基本使用
自定义异常就为了区分他的名字而已,他里面所做的事全部交给他的父类来处理。
继承Exception的,在编译时必须处理。
继承RuntimeException的,在编译时可以不处理。
因为RuntimeException是程序员犯的错误,需要修改代码。
package com.heima.exception;
public class Demo08_Exception {
public static void main(String[] args) {
}
}
//之所以有这个自定义的异常,就是为了看它的名字.看它名字的好处是为更快的检索到错误.
class AgeOutOfBoundsException extends Exception {
public AgeOutOfBoundsException() {
super();
}
public AgeOutOfBoundsException(String message) {
super(message);
}
}
package com.heima.exception;
public class Demo06_Exception {
public static void main(String[] args) throws Exception {
Person p = new Person();
p.setAge(-5);
System.out.println(p.getAge());
}
}
class Person {
private String name;
private int age;
public Person() {
super();
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) throws AgeOutOfBoundsException {
if (age > 0 && age <= 150) {
this.age = age;
} else {
throw new AgeOutOfBoundsException("年龄非法");
}
}
}