本文共 1838 字,大约阅读时间需要 6 分钟。
1、如何定义自己的异常
支持自己创建的异常。了解异常看这里:
方法如下:
1、所有的异常必须是Throwable的子类。 2、如果想写一个检查异常,需要扩展Exception类。 3、如果想编写一个运行时异常,则需要扩展RuntimeException类。 4、异常类与任何其他类一样,可以包含字段和方法。 我们可以定义如下自己的异常处理类: - class MyException extends Exception{
- }
例子: - import java.io.*;
-
- public class InsufficientFundsException extends Exception
- {
- private double amount;
- public InsufficientFundsException(double amount)
- {
- this.amount = amount;
- }
- public double getAmount()
- {
- return amount;
- }
- }
为了证明我们的使用用户定义的异常,下面的CheckingAccount类包含一个withdraw()方法抛出一个InsufficientFundsException。 - import java.io.*;
-
- public class CheckingAccount
- {
- 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 needs = amount - balance;
- throw new InsufficientFundsException(needs);
- }
- }
- public double getBalance()
- {
- return balance;
- }
- public int getNumber()
- {
- return number;
- }
- }
下面BankDemo程序演示调用deposit()和withdraw() 方法。 - public class BankDemo
- {
- public static void main(String [] args)
- {
- CheckingAccount c = new CheckingAccount(101);
- System.out.println("Depositing $500...");
- c.deposit(500.00);
- try
- {
- System.out.println("
- Withdrawing $100...");
- c.withdraw(100.00);
- System.out.println("
- Withdrawing $600...");
- c.withdraw(600.00);
- }catch(InsufficientFundsException e)
- {
- System.out.println("Sorry, but you are short $"
- + e.getAmount());
- e.printStackTrace();
- }
- }
- }
编译所有上述三个文件并运行BankDemo,这将产生以下结果: Depositing $500... Withdrawing $100... Withdrawing $600... Sorry, but you are short $200.0 InsufficientFundsException at CheckingAccount.withdraw(CheckingAccount.java:25) at BankDemo.main(BankDemo.java:13) 原文地址: http://blog.csdn.net/ooppookid/article/details/51106457