在 Java 中你可以自定义异常, 所有异常都必须是 Throwable 的子类。
如果希望写一个检查性异常类,则需要继承 Exception 类。
如果你想写一个运行时异常类,那么需要继承 RuntimeException 类
//自定义异常类,继承Exception类
public class MyException extends Exception{
//此处的amount用来储存当出现异常(取出钱多于余额时)所缺乏的钱
private double amount;
public MyException(double amount)
{
this.amount = amount;
}
public double getAmount()
{
return amount;
}
}如何使用我们自定义的异常类,
在下面的 CheckingAccount 类中包含一个 withdraw() 方法抛出一个 MyException异常。
public class CheckingAccount {
//balance为余额
private double balance;
//方法:存钱
public void deposit(double amount)
{
balance += amount;
}
//方法:返回余额
public double getBalance()
{
return balance;
}
//方法:取钱
public void withdraw(double amount) throws MyException {
if(amount <= balance)
{
balance -= amount;
}
else
{
double needs = amount - balance; //差的钱
throw new MyException(needs);
}
}
}如何调用 CheckingAccount 类的 deposit() 和 withdraw() 方法
public class CheckAccountTest {
public static void main(String[] args) {
CheckingAccount checkingAccount = new CheckingAccount();
checkingAccount.deposit(100);
try {
checkingAccount.withdraw(200);
} catch (MyException e) {
System.out.println("你的钱差" + e.getAmount());
e.printStackTrace();
}
}
}你的钱差100.0 com.zhuangzi.sbdemo.testClass.MyException at com.zhuangzi.sbdemo.testClass.CheckingAccount.withdraw(CheckingAccount.java:25) at com.zhuangzi.sbdemo.testClass.CheckAccountTest.main(CheckAccountTest.java:8) Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
