您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 自定义异常_公交刷卡

自定义异常_公交刷卡

来源:网络整理     时间:2016/7/26 6:24:28     关键词:

关于网友提出的“ 自定义异常_公交刷卡”问题疑问,本网通过在网上对“ 自定义异常_公交刷卡”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 自定义异常_公交刷卡
描述:

2. 自定义异常
要求:乘坐公交车刷卡操作。定义公交卡类,若刷卡金额大于余额,则作为异常处理。
步骤:
(1)产生异常的条件是余额少于刷卡金额,是否抛出异常要先对该条件做判断,确定产生异常的方法,在刷卡方法中产生异常。
(2)处理异常安排在调用刷卡方法中,刷卡方法抛出异常,由上一级调用方法捕获并处理。
(3)定义异常。
package ex_7_5;
class buscard{
String name;
double balance;
buscard(String name,double balance){
this.name=name;
this.balance=balance;
}
}
class MyException extends Exception{
private String myString;
public MyException(String myString){
this.myString=myString;
}
public String getMyString(){
return myString;
}
@Override
public String toString(){
return myString;
}
}
public class ex_7_5 {
public static double slotcard(double x,buscard A)throws MyException{
if(A.balance-x<0)
throw new MyException("余额不足!刷卡失败!");
else
return A.balance-x;
}
public static void main(String[] args){
buscard A=new buscard("Chen",0.5);//测试用到:0.5,1
double x;
x=1;
try{
A.balance=slotcard(x,A);
System.out.println("刷卡成功!余额为:"+A.balance);
}catch(MyException e){
System.out.println("!");
}
}
}
程序存在一些问题,望高手帮帮忙。
附:为什么这样输出的异常是“!”却不是("余额不足!刷卡失败!")


解决方案1:

引用 1 楼  的回复:
Java code
把System.out.println("!");改为:
e.printStackTrace();
这样就可以了

++ 解决方案2:


public static void main(String[] args) {
buscard A = new buscard("Chen", 0.5);// 测试用到:0.5,1
double x = 1;
try {
A.balance = slotcard(x, A);
System.out.println("刷卡成功!余额为:" + A.balance);
} catch (MyException e) {
System.out.println("!");
}
}

哎呦、姐姐、你看你这main方法嘛、当你抓到异常之后你是
System.out.println("!");
你就打印的"!"嘛,你没有打印异常、而是只打印了一个感叹号
粗心的孩子 解决方案3:

或者改成
System.out.println(e.getMyString());

解决方案4:


把System.out.println("!");改为:
e.printStackTrace();

这样就可以了
以上介绍了“ 自定义异常_公交刷卡”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2933553.html

相关图片

相关文章