关于Java中异常的学习

1.异常体系包括Error和Exception。其中Error代表的系统级别错误属于严重问题,一旦出现问题,sun公司会把问题封装成error对象给出来;Exception代表我们程序中容易出现的问题,程序员通常会用Exception以及他的孩子来封装程序中出现的问题

以下通过代码进一步初步学习异常知识

首先是编译式异常:

这里我们先定义一个字符串时间,并把字符串时间解析成Java中的一个日期对象

我们注意到第25行代码中的parse出现了红色提示,此时就是出现了编译式异常,其目的就是提醒程序员这里的程序很容易出错,请注意!

此时我们可以将这里的异常外抛,让这个方法继承Exception,详见第19行代码

与此同时,我们的主函数中还可以添加try,catch结构用于监视代码,观察用户在操作的过程中是否出现异常,其中第十五行代码用于运行时打印异常信息

接下来时运行式异常:

其特点是编译时不报错,运行时出现异常

然后是运行式异常中常见的空指针异常

2.搞清楚异常的作用

作用一:用于定位程序中bug的定位

作用二:作为方法内部的特殊返回值,以便告诉上层调用者方法内部的问题

以下通过代码进一步学习:

这里先定义一个方法,用于求两个数的除的结果,并返回这个结果

为了进一步完善方法,我们可以用条件语句返回一个异常给上层,用于告知代码执行的成功与否

我们继续在主函数中用try,catch结构监视代码

若执行成功,则返回try中的内容

若执行失败,catch会捕捉异常,并返回catch中的内容

以下是对前两节关于异常的学习总结

3.自定义异常

由于java无法为这个世界上所有的问题提供异常类来代表,我们需自定义异常类来管理问题

其中自定义异常分为自定义运行式异常和自定义编译式异常

以下是自定义编译式异常的书写格式和使用方法

以下是代码实现

首先我们引入例子,定义方法,内容要求是公司的系统只要收到了年龄小于1岁或者大于200岁就是一个年龄非法异常

其中第17行代码使用的throws关键字的TextIlegal就是上文我们自定义的异常

继续用try,catch结构监视代码

以下是运行结果

以下是自定义运行式异常的书写格式和使用方法,与自定义编译式异常类似

以下是代码实现

继续如上文引入例子

不同于自定义编译式异常,第13行可省略throws关键字

4.异常的处理方案

方案一:底层异常层层向上抛出,最外层捕获异常,记录下异常并响应提示

方案二:最外层捕获异常后,尝试修复

异常处理常见方案:

以下是代码实现:

处理方案一:

我们用上文用到过的例子实现

运行结果:

处理方案2:

我们定义一个方法,引入一个交易的例子

此时我们输入正常的数字,程序正常进行

若我们输入乱码,程序捕获到异常提示用户,代码重新运行直至接收到正常的数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值