要求:
一、定义一个Person类中,私有属性为年龄;
二、自定义异常类AgeException:继承Exception类,当年龄不在0-120之间时,接收Persion类抛出的异常,输出“年龄必须在0-120岁之间”来提醒用户。
三、测试类中,键盘录入,输入一个整数,并对数值进行try...catch...操作;
一种是输入的年龄不在0-120之间,抛出异常,让自定义异常类-AgeException进行接收处理;
另一种是输入的不是整数,输出“请输出合法数字!”最后,无论有没有异常,都输出“您辛苦了!”
Person类
public class Person { private int age; public int getAge() { return age; } //throws在方法上申明改方法抛出异常 public void setAge(int age) throws AgeException{ if (age<0||age>120){ //逻辑错误 throw new AgeException(); }else { this.age = age; } } }
自定义异常类-AgeException
public class AgeException extends Exception{ public AgeException(){ super("年龄必须在0-120岁之间"); } }
测试类Test01,java
import java.util.InputMismatchException; import java.util.Scanner; public class Test01 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入你的年龄:"); try { int age = sc.nextInt(); if (age<0||age>120){ throw new AgeException(); } }catch (InputMismatchException exception){ System.out.println("请输出合法数字!"); }catch (AgeException e ){ System.out.println(e.getMessage()); }finally { System.out.println("你辛苦了!"); } } }
运行结果:
年龄在0-120之间时,正常输出
年龄不在0-120之间时,正常输出
当输入的不是整数类型的值时,捕捉异常并输出