- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA语言基础-5
JAVA语言基础-5
课堂讨论要点:
异常与错误
a. 错误(error):
语法错误, 逻辑错误
错误是系统的设计缺陷,必须返回软件公司修复。
b. 异常(exception)
现代软件在运行过程中,往往容易受到周边因素的影响,比如网络意外中断,磁盘文件被误删除,用户录入了不正确的数据,导致软件运行中断,我们把这种不是因为软件自身原因,而是软件运行环境的意外,导致的运行停止,我们把其叫做异常。
异常不是软件本身的问题,软件本身没有语法和逻辑问题,而是周边环境发生了意外,是软件设计者始料不及的。对于异常而言,软件开发者必须做好恰当的异常处理工作,比如, 当系统发现网络意外终止,应把程序挂起,提示用户异常原因,引导用户解决异常,解决完毕后,将积极重新尝试未完成操作,使程序能够得以继续运行。
异常处理几点说明
异常对象在系统运行过程中自动创建,当然所创建的对象类型是根据不同类型的异常而有差异的,系统会把出现异常的具体信息以及导致异常的原因写在这个对象中。
异常对象主要有两个属性:
a. message 该异常的具体信息
b. cause 说明了导致这个异常的原因。
异常位置的跟踪和定位:
e. printStackTrace();
由于try块中可能有多条语句,异常爆发了,对象被抛出了,到底是那条语句导致的呢?
printStackTrace()会详细的告诉你对应的位置。
异常被捕获处理后,异常try…catch..结构后的语句将继续运行,程序不会中止。
但是try块Catch块的级联
由于一个try块中的语句,可能会抛出多种异常,对于程序员来说,应该尽早对其有预期,部署多个catch块对异常进行捕获处理,以免造成程序停机。
但可抛出的种类是在难以预测,难免有漏网之鱼,所以,一般来说,我们catch级联块的最后会安排一个“万能”异常捕获者,来抓捕所有的漏网之鱼。
Java.lang.Exception是万能捕获者,其是所有异常的父类,根据父类引用变量可以指向所有子类对象的原则,其一般放在catch级联块最后一环对遗漏的异常进行捕获。 但其处理缺乏针对性,较为粗糙,建议具体的异常还是用具体的捕获者。
Finally块
坚强的finally块,其只怕System.exit(0);
为了有效的释放在try语句运行过程中申请的资源,finally块为此而成。
一般语句结构如下:
try…catch…finally
try…finally..
try..catch…
throw和throws
throw 抛出
通常情况下,是由系统帮助我们创建对应的异常对象,然后抛出。
在有些特定情况下,我们也可以手动创建异常对象,手动抛出!
一个方法的最后部分将用来声明这个方法会抛出什么样的异常,以方便调用该方法的方法对其做好提前准备。一个方法可能抛出的异常不止一个,所以必须用throws
Xxxx methodName() throws AException,BException…..
如果一个类中会抛出异常,该异常并不在这个类中被捕获,就必须做好方法的异常声明工作。
一个异常要么被捕获处理,要么被抛出,如被抛出方法,则方法必须声明异常信息。
任何一个方法,将默认在其签名上写上 throws RuntimeException;
In the following code, which lines will be printed on the standard output?
public class Test
{
public void method1(int x) throws Exception
{
try
{
method2(x);
{
System.out.println(Checkpoint 1);
}
finally
{
System.out.println(Checkpoint 2);
}
System.out.println(Checkpoint 3);
}
public void method2(int x) throws Exception
{
if (x 0)
{
throw new NegativeArraySizeException();
}
}
static public void main(String[] args) throws Exception
{
Test t = new Test();
t.method1(-55);
System.out.println(Checkpoint 4);
}
}
A. Checkpoint
文档评论(0)