异常 例子

1. 在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。

  • 所有异常都必须是 Throwable 的子类。
  • 如果希望写一个检查性异常类,则需要继承 Exception 类。
  • 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。

2 。如果一个方法没有捕获一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。

也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。


package test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

public class aaa {
	class InsufficientFundsException extends Exception {

		private static final long serialVersionUID = 5791189265810259915L;
		private double amount;

		public InsufficientFundsException(double amount) {
			this.amount = amount;
		}

		public double getAmount() {
			return amount;
		}
	}

	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;
		}
	}

	String sss = "ddd";

	public static void main(String[] args) {
		aaa outer = new aaa();
		CheckingAccount c = outer.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 $600...");
			c.withdraw(600.00);
		} catch (InsufficientFundsException e) {
			System.out.println("Sorry, but you are short $" + e.getAmount());
			e.printStackTrace();
		}
	}
}
from : http://www.runoob.com/java/java-exceptions.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值