Java笔记 第10章 异常

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第十章异常

第一节异常的基本概念

一. 程序中可能出现的错误

1. 编译错误: 在编码过程中出现的编码错误,编译阶段就能发现,不能依据源代码生成字节码.必须进行源代码修改.

2. 在运行阶段出现的错误分为两种,

一种就是内部错误,例如内存资源不足,出现这样的错误,编码人员是无能为力,只能提示用户安全退出.

另一种称为异常,程序在运行阶段由于设计缺陷导致程序运行中断,称为运行时异常(例如整数除0),还有一种异常有可能发生,有可能不发生,这样的异常在编译阶段就能发现,必须进行处理,称为非运行时异常(例如文件下载时由于文件).

3. 在java中所有异常的父类是Throwable,Throwable有两个子类分别是Error(内部错误)和Exception(异常),Exception又分为RunntimeException(运行时异常)和非运行时异常(Ioexception,SQLException)

二. 异常处理:

1. 对于运行时异常,不提倡进行处理,而是要修改源代码,将重大的逻辑错误排除.

2. 对于非运行时异常,在java中必须进行处理,否则出现编译错误.

3. 异常处理以运行时异常为例,进行异常处理(学习异常处理语法的需要).

4. 异常处理的语法:

try{可能产生异常的语句}

catch(异常类型(类名) 变量名)

{

异常处理语句

}

[

catch(异常类型(类名) 变量名)

{

异常处理语句

} //表示可能产生多个异常

]

[

finally{无条件被执行的语句}

]

语法说明;

(1) 一个try块可以对应一个或者多个catch块,如果对应多个catch块,则catch块要按照异常的类型的从小到大排列.

(2) try…catch…finally块之间不能有任何的其他独立语句

(3) finally块: 在程序运行结束前无条件被执行的语句,如果没有可缺省

(4) 执行顺序:

a)如果try块没有发生异常,跳过catch块执行finally块,再执行其他语句。

b)如果try块有异常产生,执行到第一条产生异常的语句,进入对应的catch块执行

语句,在执行finally块,再执行其他语句。

c)finally块之前如果存在return或者是System.exit(0)语句,finally块

会被执行,其他语句不执行。

(5) 是java中的跳转语句之一

(6) try、catch、finally都可以嵌套try...catch

例如: try{}

catch(ArithMeticException e){

}

catch(Exception e){

}

finally{

无条件被执行的语句,例如关闭数据库}

三. throw和throws:

1. throw用在方法中表示产生一个异常并抛出,语法是throw 异常对象

2. throws如果方法中产生了异常并没有去处理,可以通过throws通知调用者去处理,直至系统,语法是

void test() throws 异常类型[,异常类型…..]

第二节自定义异常

1. 自定义异常要求这个类要继承自Exception父类,自定义异常都是非运行时异常,如果使用了这个异常类,必须要进行异常处理或者是异常通知.

(1) 自定义异常定义:

补充内容:

单元测试: 程序员在编码完成后对某一个功能模块(case)进行的自测,单元测试的代码应该独立于功能模块的代码,当项目代码提交前应该删除.

(1) 下载或者使用工具提供的JUnit api jar包

(2) 定义一个单元测试类,要求继承自TestCase类

(3) 在该类中添加一个带有“test”方法名的方法,该方法即可通过JUnit的方式运行

相关文档
最新文档