java银行的异常处理_从零学Java——异常处理

Java异常处理分为两种处理方式。

第一种

try{

可能存在异常,想要捕获异常的代码块

}catch(想要捕获的一场类型,可以是Java定义的Exception异常类,也可以是自定义的异常类){

捕获到异常后的操作处理,即使不填为空,Java也认为只要catch捕获到此处就已经处理了。若只是打印异常原因的话,

使用System.out.println(“语句”);只会单纯的做了打印此句话的处理,不会告知你异常的真正原因,以及异常出现的路径。

使用默认打印语句 e.printStackTrace();则不仅会输出异常原因的语句,同时显示此异常出现的所有追踪代码行号

}finally{

finally必须和catch语句同时使用,无论catch中是否捕获到异常,该句语句都会执行。比如try中由5行代码,3行时catch捕获到了异常,则45行代码不再执行,直接执行finally中语句。比如打开文件输入内容,发现文件里内容已满,无法再输入,捕获到了此异常,但是实际应用中需要关闭此文件,以免占用,影响对该文件的其他操作,此时就可以加入finally语句中,添加关闭文件的操作,此语句不会因为catch到异常而不被执行。

}

第二种

throw new Exception(“一般填异常原因”);单行想要抛出异常使用throw,一个方法内部可能会抛出多个异常,所以方法名后抛出异常使用throws,throw抛出异常如果自己不做处理操作,则会抛给上一级,例如方法1中包含方法2,方法2中抛出了异常但是方法2中未做处理,则将此异常抛给方法1,同理,如果一直未处理,一直向上级抛,直到抛给main方法后,再抛给Java环境中,Java环境进行处理。

两种异常处理方法也可以同时使用,比如存在两个异常,我只想catch其中一个,另一个异常不想做处理直接让其抛出。

//银行取款异常

public class Bank {

public double balance; //存款

//增加存款

public Bank(double balance){

this.balance = balance;

}

//根据取款金额dAmount与存款金额balance的关系,判断取款结果.getMoney方法内部抛出异常未做处理,所以抛给了getMoney方法,所以此时该方法后需要加throws继续跑异常给上一级(此处也可以成MyException),同理main方法后也需要抛异常给最终的Java环境。

public void getMoney(double dAmount) throws Exception{

if (dAmount>balance) {

throw new MyException("取款大于存款");

} else if(dAmount<0) {

throw new MyException("取款为负数");

}else {

System.out.println("取款成功");

}

}

//若将上述代码块同时使用try catch,若catch捕获到了该异常,则Java就认为异常已经被处理,继续执行下面代码,无需在方法后面加入throws再抛出异常了,如果仍然加throws,因为有catch加了也没有意义,前提是此代码块中除了MyException异常,不存在Exception异常(除法时自定除数为负数为自定义异常,那么同时使用两种方法,因为可能存在除数为0的Java异常,此时catch自定义异常,throwsException异常,同时使用两种处理方法是仍然有意义,)

/* try{上述代码作为代码块} catch(MyException e){

e.printStackTrace() //

}*/

public static void main(String[] args) throws Exception {

Bank bank = new Bank(2000);

bank.getMoney(300);

bank.getMoney(3000);//抛出取款大于存款异常,下面代码不再执行

bank.getMoney(-200);

}

}

class MyException extends Exception{

public MyException1(String message) {

super(message);

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
兰州商学院陇桥学院 工学系课程设计报告 设 计 题 目:银行存取款管理系统 系 别:工学系 专 业 (方 向):信息管理与信息系统 年 级、 班: 2011级信息管理与信息系统班 2013 年7 月 5 日 目录 一、系统开发的背景 3 二、系统分析与设计 4 (一)系统功能要求: 4 (二)系统模块结构设计 5 1、存款系统模块,该模块主要实现:用户的存款要求; 5 2、取款模块,该模块主要实现:用户的取款要求; 6 3、余额查询模块,该模块主要实现:用户完成各项存取款后的余额查询业务; 6 4、利率模块,该模块主要实现:用户完成各项业务后,对账户余额利率的查询; 6 5、转账模块,该模块主要实现:用户对其存款的转账业务; 6 6、退出模块,业务完成,退出系统。 6 三、系统的设计与实现 6 (一)登录界面 6 (二)主菜单界面 9 (三)各模块的具体实现 12 四、系统测试 15 (一)登录界面: 15 (二)主菜单界面: 16 (三)各操作界面: 17 五、总结 18 六、附件(代码、部分图表) 19 银行存取款管理系统 一、系统开发的背景 随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银 行客户的需要。 现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己 越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各 种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方 便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务: 同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争, 如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术 加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆 在各家银行面前的一个迫切需要解诀的问题。 随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行 的电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高 效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。 支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大, 响应时间长。 特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然 而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快 速、有效、准确、安全的处理银行事物。 二、系统分析与设计 (一)系统功能要求: 根据系统的需求分析,本系统的功能要求: 1.用户登录界面:包括账户和密码,使有银行账号的用户进入系统管理自己的财务。 2.存款记录:记录每个时间点的存款金额和银行余额,使用户金额一目了然。 3.存款流水账:记录每天,每个用户存款金额,最后进行汇总。 4.利息结算:按照用户的存款金额和存款时间,进行月利率或者年利率计算制。 5.取款记录:记录每个时间点的取款金额和银行余额。 (二)系统模块结构设计 通过对系统功能的分析,银行存取款管理系统功能。 图1银行存取款管理系统功能图 通过上图的功能分析,把整个系统划分为6个模块: 主要导航栏有:欢迎使用储蓄卡管理(存款、取款、查询余额、利率、注销退出) 1、存款系统模块,该模块主要实现:用户的存款要求; 2、取款模块,该模块主要实现:用户的取款要求; 3、余额查询模块,该模块主要实现:用户完成各项存取款后的余额查询业务; 4、利率模块,该模块主要实现:用户完成各项业务后,对账户余额利率的查询; 5、转账模块,该模块主要实现:用户对其存款的转账业务; 6、退出模块,业务完成,退出系统。 三、系统的设计与实现 (一)登录界面 分析:首先输出界面,其中有用户名和密码,然后进入主页面,该模块的具体代码 。 l1=new Label("欢迎来到银行管理系统",Label.CENTER); Font f=new Font("宋体",Font.BOLD,30); l1.setFont(f); l2=new Label("请输入管理员帐号",Label.CENTER); l3=new Label("请输入管理员密码",Label.CENTER); setBackground(Color.pink); btn=new Button("确定"); t1=new TextField(20); t2=new TextField(15); //t2.setEchoChar( * ); l1.setForeground(Color.red); t1.setBackground(Color.cyan); t2.setBackground(Color.cyan); t

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值