/*
自定义异常的三步骤1.定义:一般是继承Exception,重写构造2.设置:将该异常设置在某段代码中,复合条件则抛出3.触发:调用设置了异常的代码,符合条件则触发异常 */ 先定义两个自定义异常:年龄异常 取款异常注意:BalanceNotEnoughException我继承的是RuntimeException,这是Exception的一个子类 先介绍一下这个子类
RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerException,我们在写程序时不会进行catch或throw。
再写一个Person类并植入异常
package SE02.n1Exception; public class Person { int age=0; int balance=1000000; @Override public String toString() { return "Person [age=" + age + "]"; } public int getAge() { return age; } public void setAge(int age) throws AgeIllegalException { if(age>10000||age<0) { throw new AgeIllegalException("年龄非法"); } this.age = age; } public void deposit(int money) { balance+=money; } public void withDraw(int money) { if(balance-money<0) { throw new BalanceNotEnoughException("钱不够"); //可以看到在抛出本异常的时候,编译器并没有提示我们要抛出异常 } balance-=money; } }运行结果: SE02.n1Exception.AgeIllegalException: 年龄非法 at SE02.n1Exception.Person.setAge(Person.java:17) at SE02.n1Exception.Demo04.main(Demo04.java:15) Exception in thread “main” SE02.n1Exception.BalanceNotEnoughException: 钱不够 at SE02.n1Exception.Person.withDraw(Person.java:26) at SE02.n1Exception.Demo04.main(Demo04.java:21)
总结:自定义异常还是比较简单的,新建一个自定义异常类,选择继承异常种类,再重写构造函数。然后在需要抛出异常的地方做判断,植入异常,具体语句:throw new xxxxxxException()