例子:
HotelTryCatchDemo.java:
package com.snape.java.ExceptionProj; import java.util.Scanner; public class HotelTryCatchDemo { public static void main(String[] args) { try { AgeTest(); } catch (HotelAgeException e) { System.out.println(e.getMessage()); System.out.println("酒店前台工作人员不允许办理入住登记"); //根据情况作出的特殊处理 }catch (Exception e){ e.printStackTrace(); } }//main方法结束 /** * throw 抛出异常对象的处理方案: * 1.通过try...catch包含throw语句,自己抛自己处理 * 2.通过throws在方法声明处抛出异常类型--谁调用谁处理--调用者可以自己处理,也可以继续上抛 * 此时可以抛出与throw对象相同的类型或者其父类 */ //描述酒店入住规则,年龄在18岁以下或80岁以上,须由亲友陪同 // public static void AgeTest(){ // try { // Scanner input = new Scanner(System.in); // System.out.println("请输入年龄:"); // int age = input.nextInt(); // // if(age<18 || age>80){ // throw new Exception("年龄在18岁以下或80岁以上,须由亲友陪同"); // }else{ // System.out.println("欢迎来到本酒店"); // } // }catch (Exception e){ // e.printStackTrace(); // } // }//AgeTest()方法结束 public static void AgeTest() throws HotelAgeException { Scanner input = new Scanner(System.in); System.out.println("请输入年龄:"); int age = input.nextInt(); if(age<18 || age>80){ // throw new Exception("年龄在18岁以下或80岁以上,须由亲友陪同"); throw new HotelAgeException(); //直接进行无参构造 }else{ System.out.println("欢迎来到本酒店"); } }//AgeTest()方法结束 }//类HotelTryTest类结束
HotelAgeException.java:
package com.snape.java.ExceptionProj; public class HotelAgeException extends Exception { //无参构造方法 public HotelAgeException(){ super("18岁以下、80岁以上的住客须由亲友陪同"); } }
结果: