class OutOfMoneyException extends Exception {
private static final long serialVersionUID = 1L; public OutOfMoneyException() {
super("Your account have not enough money!");
} public OutOfMoneyException(String msg) {
super(msg);
} public static void main(String[] args) {
OutOfMoneyException obj = new OutOfMoneyException();
obj.printStackTrace();
}
}
class Account {
private double balance = 1000; public void transfer(double amount) throws OutOfMoneyException {
if (balance < amount)
throw new OutOfMoneyException("Balance< Amount");
balance = balance - amount;
} public double getBalance() {
// TODO Auto-generated method stub
return balance;
}
}public class AccountDemo {
public static void main(String[] args) {
Account obj = new Account();
double amount = 800;
for (int count = 0; count < 3; count++) {
try {
obj.transfer(amount);
System.out.println("balance:" + obj.getBalance());
} catch (OutOfMoneyException exc) {
exc.printStackTrace();
}
amount = amount - 300;
}
}
}它的执行结果跟我想的不一样,大家觉得应该是如何呢?
解决方案 »
- 寫一個自動生成文本框的SWT界面的java(有圖),還未完成,請幫忙
- sudo: ./jdk-6u29-linux-i586.bin: command not found 求助
- java main方法参数
- excel导入数据库乱码问题
- java工作一年半,薪金问题
- 能否举一个socket.setSoTimeout的例子?
- 对私有属性的调用一定要写成get,set吗?
- 一个简单的问题
- java 3D question (50分,绝对结帐,希望有人能帮忙,老板催活!!!)
- Java用borland的Jbuilder8好还是用sun 的j2sdk 1.4好??
- 绘制椭圆问题。一个椭圆被rotate后的选中问题。
- 求算法高手!!!!!!!!
class OutOfMoneyException extends Exception {
private static final long serialVersionUID = 1L; public OutOfMoneyException() {
super("Your account have not enough money!");
} public OutOfMoneyException(String msg) {
super(msg);
} public static void main(String[] args) {
OutOfMoneyException obj = new OutOfMoneyException();
obj.printStackTrace();
}
}
class Account {
private double balance = 1000; public void transfer(double amount) throws OutOfMoneyException {
//我估计你想的结果是打印“Your account have not enough money!”
//如果确实是这样的话,抛出异常的时候用无参的的构造函数
if (balance < amount)
throw new OutOfMoneyException();
balance = balance - amount;
} public double getBalance() {
return balance;
}
}
public class AccountDemo {
public static void main(String[] args) {
Account obj = new Account();
double amount = 800;
for (int count = 0; count < 3; count++) {
try {
obj.transfer(amount);
System.out.println("balance:" + obj.getBalance());
} catch (OutOfMoneyException exc) {
//如果你想只是打印结果的异常信息的话,就用exc.getMessage()
System.out.println(exc.getMessage());
}
amount = amount - 300;
}
}
}猜了猜楼主的意思!
我认为的结果应该是:balance:200.0
exceptionTest.OutOfMoneyException: Balance< Amount
balance:0.0可实际输出时:balance:200.0
balance:0.0
exceptionTest.OutOfMoneyException: Balance< Amount
balance:200.0
OutOfMoneyException: Balance< Amount
at Account.transfer(AccountDemo.java:22)
at AccountDemo.main(AccountDemo.java:37)
balance:0.0