自定义异常类继承自Exception:
package java_exception;
public class HotelAgeException extends Exception {
public HotelAgeException(){
super("18岁以下,80岁以上的住客必须由亲友陪同");
}
}
抛出自定义异常:
package java_exception;
import java.util.Scanner;
public class TryDemoFour {
public static void main(String[] args) {
try {
testAge();
} catch (HotelAgeException e) {
System.out.println(e.getMessage());
System.out.println("酒店前台不允许办理入住登记");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void testAge() throws HotelAgeException {
System.out.println("请输入年龄:");
Scanner input = new Scanner(System.in);
int age = input.nextInt();
if(age<18 || age>80){
throw new HotelAgeException();
} else {
System.out.println("欢迎入住本酒店");
}
}
}
输出:
请输入年龄:
36
欢迎入住本酒店
请输入年龄:
12
18岁以下,80岁以上的住客必须由亲友陪同
酒店前台不允许办理入住登记
请输入年龄:
d
java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at java_exception.TryDemoFour.testAge(TryDemoFour.java:56)
at java_exception.TryDemoFour.main(TryDemoFour.java:11)