异常
1.知识点
2.处理方法
代码
一次解决多个异常问题,用一个 | ,用了两个 || 就报错
在JDK7之后,我们可以在catch中同时捕获多个异常,中间用|进行隔开表示如果出现了A异常或者B异常的话,采取同一种处理方案
规则
方法
抛出异常
3.异常全代码:
import java.util.Scanner; public class ThrowStudy { public static void main(String[] args) { int num = 0; Girlfriend gf = new Girlfriend(); Scanner sc = new Scanner(System.in); while (true){ try { System.out.println("请输入姓名"); String name = sc.next(); gf.setName(name); System.out.println("请输入年龄"); String age = sc.next(); num =Integer.parseInt(age); gf.setAge(num); break; }catch (NumberFormatException e){ System.out.println("年龄格式不对,请输入整数:"); } catch (AgeError a){ a.printStackTrace(); }catch (NameError n){ n.printStackTrace(); } } } } //测试类 class Girlfriend { private String name; private int age; public Girlfriend() { } public Girlfriend(String name, int age) { this.name = name; this.age = age; } /** * 获取 * @return name */ public String getName() { return name; } /** * 设置 * @param name */ public void setName(String name) { if(name.length() < 3 || name.length() > 10){ throw new NameError(name + "不符合规范"); } this.name = name; } /** * 获取 * @return age */ public int getAge() { return age; } /** * 设置 * @param age */ public void setAge(int age) { if(age > 40 || age <18 ){ throw new AgeError(age + "不符合规范"); } this.age = age; } public String toString() { return "Girlfriend{name = " + name + ", age = " + age + "}"; } } //姓名报错信息 class NameError extends RuntimeException{ public NameError() { } public NameError(String message) { super(message); } } //年龄报错信息 class AgeError extends RuntimeException{ public AgeError() { } public AgeError(String message) { super(message); } }