/*
自定义异常:
1)定义一个类继承Exception
2)在自定义异常类虫提供两个构造方法。
3)在需要的位置通过throw抛出异常对象。
4)throw所在的方法通过throws声明该异常
5)调用方法时,需要对受检异常预处理
*/
package day_18;
public class ageOverFlowException extends Exception { // 1)定义一个类继承Exception
// 2)在自定义类中提供两种构造方法(1.无参构造方法 2.带字符串构造方法)
public ageOverFlowException() {
}
public ageOverFlowException(String message) {
super(message);
}
}
package day_18;
public class Person {
private String name;
private int age;
private String sex;
public Person() {
}
public Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) throws ageOverFlowException { // 4)throw所在的方法通过throws声明该异常对象
if(age>=0 && age<=120){
this.age = age;
}
else{
//年龄不合法,抛出一个异常
// 3)在需要的位置通过throw抛出异常对象
throw new ageOverFlowException("年龄越界");
}
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
}
package day_18;
public class Tset_Exception2 {
public static void main(String[] args) {
Person person=new Person();
person.setName("张三");
try { // 5)对受检异常进行预处理,捕获异常
person.setAge(2000);
} catch (ageOverFlowException e) {
e.printStackTrace();
}
person.setSex("男");
System.out.println(person);
}
}