当前位置:首页 > Java笔记第10章异常(精)
第十章 异常
第一节 异常的基本概念 一. 程序中可能出现的错误
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的方式运行
共分享92篇相关文档