版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,第六章 常见错误和异常处理 成都东软信息技术学院 计算机系 季建华,Beyond Technology,B313 Email:,第6章 常见错误和异常处理,开发应用程序时出现错误是不可避免的。 对待程序中出现错误的正确态度:尽可能的少有错误;不要恐慌,不要掩盖错误。 程序运行过程中出现的常见的错误类型。 学习调试的方法。 学习异常处理是为了让可能的错误发生在控制中。,6.1常见的错误,了解常见的错误是为了避免这些错误。 常见的错误有: 编译时出现错误、 运行时期发生的错误、 运行后发现的错误,即发现程序运行结果不合要求。,6.1.1编译错误,Java语言初学者常犯的错误: 大小写形式混淆 使
2、用未定义的变量 使用未初始化的变量 数据类型与变量类型不符 语句后遗漏了分号 小括号不配对 养成良好的编程习惯,借助开发工具可以减少编译错误。,6.1.2运行错误,程序运行时可能因为各种错误而运行中断。 除数为零 数组下标越界,数组下标越界 int a = new int10; for(int i = 1; i = 10; i +) system.out.println(ai);,6.1.3逻辑错误,这类错误合乎语法 程序运行后没有得到预期的效果 1,超出数据类型的数值范围 2,将“=”写成了“=” 3,大括号问题,最好在任何情况下都使用大括号将语句体括起来 int sum = 0; int
3、i=1; While(i = 100) sum =+i; i+;,6.2 异常处理,用户期望程序可以聪明地处理所出现的错误,比如:返回到一个安全的状态并且允许用户执行其它程序。 程序出现错误后你的程序起码可以应该: 通知用户程序出现了一个错误 保存全部工作 允许用户安全地退出程序,6.2.1 什么是异常处理,什么是异常? 异常实际上是程序中错误导致中断了正常的指令流的一种事件. 没有处理错误的程序: readFile open the file; determine its size; allocate that much memory; read the file into memory;
4、close the file; ,errorCodeType readFile /以常规方法处理错误 initialize errorCode = 0; open the file; if (theFileIsOpen) determine the length of the file; if (gotTheFileLength) allocate that much memory; if (gotEnoughMemory) read the file into memory; if (readFailed) errorCode = -1; else errorCode = -2; else
5、errorCode = -3; close the file; if (theFileDidntClose ,观察前面的程序你会发现大部分精力花在出错处理上了. 只把能够想到的错误考虑到,对以外的情况无法处理 程序可读性差 出错返回信息量太少,用Java中的异常机制处理错误 try open the file; determine its size; allocate that much memory; read the file into memory; close the file; catch(fileopenFailed) dosomething; catch(sizeDetermin
6、eFailed) dosomething; catch(memoryAllocateFailed) dosomething; catch(readFailed) dosomething; catch(fileCloseFailed) dosomething; ,和传统的方法比较异常的优点: 1.把错误代码从常规代码中分离出来,提高了可读性 2.把错误传播给 调用堆栈 3.按错误类型和 错误差别分组, 可以利用类的层次性 统一处理或分别处理异常。 4.系统提供了对于一些无法预测的错误的捕获和处理 5.克服了传统方法的错误信息有限的问题,6.2.2 Exception类,Java语言每一种Exce
7、ption类都对应一种特定的运行错误。 熟悉常见的已定义的系统异常。 用户可以自定义异常来处理用户程序中特定的逻辑运行错误,6.2.3 异常处理的过程,try /接受监视的程序块,在此区域内发生 /的异常,由catch中指定的程序处理; catch(要处理的异常种类和标识符) /处理异常; catch(要处理的异常种类和标识符) /处理异常; 通常将较具体和较常见的异常的处理放在前面。,一定会执行的程序块-finally 异常处理的统一出口 try /常规的代码; catch() /处理异常 finally /不论发生什么异常(或者不发生任何异常),都要执行的部分; ,finally在文件处理
8、时非常有用 try 对文件进行处理的程序; catch(IOException e) /对文件异常进行处理; finally 不论是否发生异常,都关闭文件; ,一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理这些异常,叫声明异常. 声明异常的方法 在产生异常的方法名后面加上要抛出(throws)的异常的列表 public static int num(int i)throws ArithmeticException if(i =0) throw new ArithmeticException(“除数不能为0”); return(10/i) returnType met
9、hodName(parameterlist) throws exceptionList,6.2.5 自定义异常处理,对于Java系统监测不到的异常(接收数据为非法数据等), 可以由用户自己定义异常来识别处理. 用户自定义的异常类一般都是Exception类的直接或间接子类。,创建自定义异常的基本步骤如下。 (1)定义一个新的异常类,其必须继承Throwable或Exception类、Exception类的子类或用户自定义的其他异常类。 定义的格式如下: class 自定义异常类名 extends 父异常类名 语句体 ,(2)为新的异常类定义属性和方法,或重载父类的属性和方法,使之能够体现出程序
10、中出现这种异常的信息。 public class NumberRangeException extends Exception public NumberRangeException() super(); public NumberRangeException( String s ) super( s ); ,(3)抛出用户自定义的异常。 用户自定义异常不可能依靠系统自动抛出,而必须通过throw语句抛出异常,通常是通过条件判断确定是否抛出这个异常类的新对象。 抛出用户自定义异常格式如下: 返回类型 方法名( 参数1, 参数2, ) throw 自定义异常类 if( 条件判断 ) throw ( new 自定义异常类名( this ) ); ,使用异常机制的一些技巧,不要过度使用异常 异常处理会花费很多时间,滥用异常,可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铁路运输物资调度主任的工作规划及执行
- 三年(2023-2025)湖南中考语文真题分类汇编:专题03 文化文学常识(解析版)
- 国家电网变电检修主管面试解析
- 介绍藕粉圆子的演讲稿
- 党课:坚守师德底线 赋能学校高质量发展
- 装备工作演讲稿标题
- 称赞张桂梅的演讲稿
- 演讲稿生命的绿色故事
- 恐龙宝贝主题曲演讲稿
- 2026年中级经济师《保险专业知识与实务》题库(含答案解析)
- 欧姆龙cx-programmer操作手册
- GB/T 42756.1-2023卡及身份识别安全设备无触点接近式对象第1部分:物理特性
- Listen-to-This-2英语中级听力答案+原文整理版
- 茶叶加工项目可行性研究报告
- 土地复垦-损毁预测
- 水平定向钻穿越高速公路施工方案
- 应用写作写作四要素
- GA/T 1772-2021机动车查验场地设置规范
- 设计思维与图形创意课件
- 中外管理思想史-课件
- 小学二年级第二学期开学第一课课件
评论
0/150
提交评论