初学问题:高分悬赏异常问题

gotoshop 2007-07-20 02:03:57
有java简单实现:给客户建立一个帐户,当取钱大于余额时,就抛出异常,显示余额不足!
...全文
179 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
orangemike 2007-07-20
  • 打赏
  • 举报
回复
public class MoneyNotEnough extends Exception {

public MoneyNotEnough() {
super();
}

/**
* @param message
* @param cause
*/
public MoneyNotEnough(String message, Throwable cause) {
super(message, cause);
}

/**
* @param message
*/
public MoneyNotEnough(String message) {
super(message);
}

/**
* @param cause
*/
public MoneyNotEnough(Throwable cause) {
super(cause);
}

}

public class Account{

private long nowMoney ;

Account(){ nowMoney = 5000; }

public boolean hasEnoughMoney(long out) throws MoneyNotEnough{

if (out > this.nowMoney) throw new MoneyNotEnough("余额不足");

nowMoney = nowMoney - out;
return true;

}
}




lzheng2001 2007-07-20
  • 打赏
  • 举报
回复
更标准的做法是把余额不足这个错误定义成一个MoneyNotEnoughException

public void fetchMoney(int money) throws MoneyNotEnoughException,Exception{
if ...{
throw new MoneyNotEnoughException("余额不足!");
}
}

外部调用fetchMoney()时用try取得错误
try{
fetchMoney(1000)
}
catch(MoneyNotEnoughException e1){
...println("余额不足!")
}
catch(Exception e){
e.printStackTrace();
}
lzheng2001 2007-07-20
  • 打赏
  • 举报
回复
定义函数的时候应该加上throws Exception来让外部的调用者处理这个你自己发出的Exception.

如果在函数内部用try catch 来捕获自己发出的错误就没有多大意义了.
grass_12 2007-07-20
  • 打赏
  • 举报
回复
就是呀,搞定
lzheng2001 2007-07-20
  • 打赏
  • 举报
回复
public void xxx() throws Exception{
if ...{
throw new Exception("余额不足!");
}
}
weiqiyiji 2007-07-20
  • 打赏
  • 举报
回复
顶一个
没有多的要说
joejoe1991 2007-07-20
  • 打赏
  • 举报
回复
顶楼上的
jingtao8177 2007-07-20
  • 打赏
  • 举报
回复
补充下
try{
if( 取钱大于余额 )
throw new Exception("余额不足!");
}catch(Exception msg){
System.out.println(msg.getMessage());
}
jingtao8177 2007-07-20
  • 打赏
  • 举报
回复
try{
if( 取钱大于余额 )
new Exception("余额不足!");
}catch(Exception msg){
System.out.println(msg.getMessage());
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧