第06章 异常处理_第1页
第06章 异常处理_第2页
第06章 异常处理_第3页
第06章 异常处理_第4页
第06章 异常处理_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章异常处理6.1什么是异常

6.2try-catch-finally语句

Java中使用try-catch-finally语句来捕获并处理异常,try-catch-finally语句的语法格式如下:try{ //可能会产生异常的程序代码}catch(Exception_1e1){//处理异常Exception_1的代码}catch(Exception_2e2){//处理异常Exception_2的代码}...catch(Exception_nen){//处理异常Exception_n的代码}[finally{//通常是释放资源的程序代码 }]整个语句由try块、catch块和可以缺省finally块三部分组成。(1)try块将可能产生异常的程序代码放在此处,该段代码是程序正常情况下应该要完成的功能。6.2try-catch-finally语句(2)catch块将程序员感兴趣的要处理的异常和该异常的处理代码排列在此。(3)finally块该部分是可以缺省的,通常将释放资源的程序代码放于此处。对try-catch-finally语句的讨论:

(1)当产生异常时,程序从上往下依次判该异常是不是catch(Exception_xe)块中Exception_x类或其子类的对象。(2)try-catch-finally语句的嵌套。try-catch-finally语句的try块、catch块、finally块中的程序代码都可以嵌套另外的try-catch-finally语句,且嵌套层次数任意。6.3

声明抛出异常子句

声明抛出异常是一个子句,只能加在方法头部的后边。语法格式如下:throws<用逗号分隔的异常列表>如:publicintread()throwsIOException{...【例6.2】从键盘读入汉字,打印出其机内码。注意不是UNICODE码。importjava.io.*;publicclassEx_Exception2{ publicstaticvoidmain(String[]args)throwsIOException {intc; while((c=System.in.read())!=-1)

System.out.println(c); }}6.4抛出异常语句

真正抛出异常的动作是由抛出异常语句来完成的。格式如下:throw<异常对象>;其中:<异常对象>必须是Throwable类或其子类的对象。如:thrownewException("这是一个异常");下面的语句在编译时将会产生语法错误:thrownewString("能抛出吗?");这是因为String类不是Throwable类的子类。

又如:publicvoidf()throwsMyException{…………if(a<0)thrownewMyException(“异常1”);……}6.4抛出异常语句【例6.3】从键盘读入字符,打印出其码值。若按了a键,则立即抛出异常。importjava.io.*;publicclassEx_Exception3{publicstaticvoidmain(String[]args) {intc; try { while((c=System.in.read())!=-1) { if(c=='a') thrownewException("键a坏了!");

System.out.println(c); } }

catch(IOExceptione) { System.out.println(e); } catch(Exceptione) { System.out.println(e); }}}6.5定义自己的异常类

【例6.4】自定义异常类的使用。本例中,当a的值小于10或大于100时,将产生异常。

classMyException1extendsException{ intnum; MyException1(inta) { num=a;} publicStringtoString() { returnnum+"<10!\r\n值必须大于10";}}classMyException2extendsException{ intnum; MyException2(inta) { num=a;} publicStringtoString() { returnnum+">100!\r\n值必须小于100";}6.5定义自己的异常类classMyExceptionTest{staticvoidmakeException(inta)throwsMyException1,MyException2 {if(a<10) thrownewMyException1(a); if(a>100) thrownewMyException2(a);

System.out.println("没有产生例外"); } publicstaticvoidmain(Stringargs[]) { inta; try{a=Integer.parseInt(args[0]);

makeException(a);

System.out.println("a="+a); }catch(MyException1e) { System.out.println("产生第一个例外:\r\n"+e); } catch(MyException2e) { System.out.println("产生第二个例外:\r\n"+e);} }}6.5定义自己的异常类对异常处理的进一步讨论:(1)对Error类或其子类的对象,程序中不必进行处理。(2)对RuntimeException类或其子类,程序中可以不必进行处理。(3)除此之外的异常,程序员都应该在程序中进行处理。要么用try-catch-finally进行捕获处理要么

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论