第章 异常处理机制.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章异常处理机制 ;传统的处理方式;在进行程序设计时,错误的产生是不可避免的 如何处理错误? 把错误交给谁去处理? 程序又该如何从错误中恢复? 这是任何程序设计语言都要解决的问题;class Calculate { static void calculate(int num1,int num2){ int nResult; nResult = num1 + num2; //加法运算 System.out.println(和= + nResult); nResult = num1 - num2; //减法运算 System.out.println(差= + nResult); nResult = num1 * num2; //乘法运算 System.out.println(积= + nResult); //除法运算,先判断分母为0 不? 注1 if(num2 !=0){ nResult = num1 / num2; System.out.println(商= + nResult); } else{ System.out.println(Error,没有商,除数为0! ); } ;if(num2 !=0) { nResult = num1 % num2; System.out.println(余数= + nResult\n第二次运算); }else{ System.out.println(Error,没有余数,除数为0! ); } } } public class Traditional { public static void main(String[] aaa) { int x = 9, y = 6; Calculate.calculate(x, y);// //注3 x = 7; y = 0; Calculate.calculate(x, y);// //注4 } } ; 程序可读性差,大量的错误处理代码混杂在程序中 观察前面的程序,会发现大部分精力花在出错处理上 只把能够想到的错误考虑到,此外的情况无法处理 出错返回信息量太少,无法更确切的了解错误状况或原因;所谓错误,是在程序运行过程中发生的异常事件,比如除0溢出、数组越界、文件找不到等,这些事件的发生将阻止程序的正常运行。为了加强程序的强壮性(robust),程序设计时,必须考虑到可能发生的异常事件并做出相应的处理。 ;Java异常是Java提供的用于处理程序中错误的一种机制。 所谓错误是指在程序运行过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)。 设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。;Java程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程称为抛出(throw)异常。 当Java运行时系统接收到异常对象时,会寻找处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。; 三、Java异常类;Error:称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。(也处理不了) Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显式的声明或捕获。 Runtime Exception:一类特殊的异常,如被0除、数据下标越界等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。;所有的包中都定义了异常类和错误类。 Exception类是所有异常的父类 Error类是所有错误的父类,这两个类都实现了Throwable接口。;3 异常分类 ;3 异常分类 ;3 异常分类 ; 算术异常ArithmeticException 整数除法中,若除数为0,或用0取模,会发生该异常。 例如: int i = 12 / 0; int m = 5 % 0; 其他算术操作不会产生异常; 空指针异常NullPointerException 当程序试图访问一个空对象(即没有实例化的对象)中的变量或方法,或一个空数组中的元素时,会发生该异常。 例如: int a [ ] = null; a [ 0 ] = 0; String s=null; System.out.println(s.length());;

文档评论(0)

小吴 + 关注
实名认证
内容提供者

同一个世界,同一个梦想

1亿VIP精品文档

相关文档