#Java中自定义异常的声明与处理
##一、编写自己的异常类需要注意
1、所有的异常都必须是Throwable 的子类;
2、如果希望写一个检查性异常类,则需要继承Exception类;
3、如果希望写一个运行时异常类,那么需要继承RuntimeException类。
##二、自定义异常类实例
银行账户的模拟,通过银行卡的号码完成识别,可以进行存钱和取钱的操作。
InsufficientFundsException.java 文件代码:
package myexception;
import java.io.*;
//自定义异常类,继承Exception类
public class InsufficientFundsException extends Exception{
//此处的amount用来存储出现异常(取的钱多于余额时)所缺乏的钱
private double amount;
public InsufficientFundsException(double amount) {
this.amount = amount;
}
public double getAmount() {
return amount;
}
}
CheckinAccount.java 文件代码:
package myexception;
//此类模拟银行账户
public class CheckingAccount {
//balance为余额,number为卡号
private double balance;
private int number;
public CheckingAccount(int number) {
this.number = number;
}
//存钱方法
public void deposit(double amount) {
balance += amount;
}
//取钱方法
public void withdraw(double amount) throws InsufficientFundsException{
if(amount <= balance) {
balance -= amount;
}else {
double need = amount -balance;
throw new InsufficientFundsException(need);
}
return balance;
}
//返回卡号
public int getNumber() {
{
return number;
}
}
BankDemo.java 文件代码:
package myexception;
public class BankDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
CheckingAccount c = new CheckingAccount(101);
System.out.println("Depositing $500...");
c.deposit(500.00);
try {
System.out.println("\nWithdrawing $100...");
c.withdraw(100.00);
System.out.println("\nWithdrawing $100...");
c.withdraw(600.00);
}catch(InsufficientFundsException e){
System.out.println("Sorry,but you have short $" + e.getAmount());
e.printStackTrace();
}
}
}
##三、编译三个文件并运行BankDemo.java,得到如下结果:
以上便是我对自定义异常的使用,希望可以帮到更多有用的人。如有好的建议,请联系kylesweet@163.com。