网站大量收购闲置独家精品文档,联系QQ:2885784924

07异常与调试.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
07异常与调试

异常与调试 当程序遇到了非致命的错误,而不是编译时的语法错误。如要打开一个不存在的文件,要访问网络,数组越界等。 异常:是程序运行过程中发生的事件,该事件可以中断程序的正常执行流程。只要一出现异常,程序就会中断执行。 Java中的异常分为两大类: 错误(Error)是指JVM系统内部错误、内存溢出等严重情况。此时程序一定会退出,因为已经失去了运行所必须的物理环境。 违例(Exception)是指其他因编程错误或偶然的外在因素导致的问题。 错误我们无法处理,而违例则可以进行补救处理。我们一般说的异常就是指违例而言。 Java异常类层次 RuntimeException(运行时异常):未检查异常,由于程序员疏忽造成的并可避免的。我们可处理,可不处理。比如:类型转换、空指针、数组越界等。 异常处理的宗旨 返回到一个安全和已知的状态 能够使用户执行其他的命令 如果可能,则保持之前所以的工作 如果有必要,则安全推出避免造成进一步的伤害。 Java的异常处理机制 Java程序执行过程中如果出现异常,则系统会抛出一个相对应的异常类对象,然后交给运行时系统。 运行时系统会寻找对应的代码来处理这个异常,如果没有对应处理异常的代码,则系统将终止,相应的Java程序也推出。 Java异常的捕获 try{ 可能出现异常的代码 }catch(需要处理的异常的名字1){ 异常处理的代码 } catch(需要处理的异常的名字21){ 异常处理的代码 } …… 但try代码中的程序产生异常时,系统会将异常发生的代码号、异常信息等封装到一个对应的异常对象中,并把这个对象交给catch代码进行处理。 异常信息的输出 e.getMessage();//打印出来是创建异常对象的时候,给定的参数 e.printStackTrace();//打印堆栈追踪信息 使用try…catch后,即使程序出现异常但之后的代码然后可以继续执行。但在try中出现异常后面的代码将不会继续执行。如果程序没有发生异常,则不会执行catch中的代码。 当一个try后面跟多个catch时,需要注意的是子类必须放在父类的前面。 使用finally块 try{ 可能出现异常的代码 }catch(需要处理的异常的名字1){ 异常处理的代码 } catch(需要处理的异常的名字21){ 异常处理的代码 } …… finally{ 不论是否发生异常,都要执行的代码 } 如果出现异常,但catch没有捕获到,那finally中代码还会执行吗? finally:即使在try和catch中使用了return语句退出当前方法,或使用break跳出某个循环时,相关的finally代码块还是要执行的。 只有一种情况finally代码块不会被执行,那就是System.exit(0); 另一种形式 try - finally :不捕获异常,当异常发生,返回上一级之前,但要运行finally中的代码 声明异常—throws 声明异常是Java中处理异常的第二种方式。 throws用于在方法的声明处使用,表示在此法中不处理异常,而是把异常交给了调用这个方法的调用者去处理。如果又多个异常,则使用逗号”,”分隔。 eg:public void doXX()throws IOExcption , SQLException 注意: 一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类 如果父类抛出了多个异常,那么重写方法必须抛出那些异常的一个子集。也就是说不能抛出新的异常。 抛出异常 抛出异常是指不是系统产生的异常,而是程序员认为的抛出某些异常。可以通过关键字—throw eg:throw new XXException(); 被抛出的必须是Throwable或其子类。 自定义异常 我们可以自己定义我们自己的异常类。自定义的异常必须继承Exception类。 (1)继承Exception类 (2)构造方法: 不带参数的构造方法, 带参数的构造方法:参数指出错误性质,super(message);把参数传递给父类构造异常

文档评论(0)

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

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档