第五讲异常处理.ppt
《第五讲异常处理.ppt》由会员分享,可在线阅读,更多相关《第五讲异常处理.ppt(47页珍藏版)》请在三一文库上搜索。
1、第五讲:异常处理,目录,1 异常的概念 2 异常的分类 3 捕获异常 4 声明异常 5 抛出异常 6 创造自己的异常 7 总结,1、什么是异常,异常(例外)就是在程序的运行过程中所发生的异常事件,它中断指令的正常执行。 Java中提供了一种独特的处理异常的机制,确保不会产生死机、无限循环或者其他对操作系统的损害,从而保证整个程序运行的安全性。 Java使用Try catch两个关键字对来表示对某程序块的异常处理,1、异常的概念,没有处理错误的程序: read-file openTheFile; determine its size; allocate that much memory; clo
2、seTheFile; ,1、 异常的概念,以常规方法处理错误 openFiles; if (theFilesOpen) determine the lenth of the file; if (gotTheFileLength) allocate that much memory; if (gotEnoughMemory) read the file into memory; if (readFailed) errorCode=-1; else errorCode=-2; else errorCode=-3; else errorCode=-4 ; else errorCode=-5;,1、
3、异常的概念,观察前面的程序你会发现大部分精力花在出错处理上了. 只把能够想到的错误考虑到,对以外的情况无法处理 程序可读性差 出错返回信息量太少,1、异常的概念,用异常的形式处理错误 read-File; try openTheFile; determine its size; allocate that much memory; closeTheFile; catch(fileopenFailed) dosomething; catch(sizeDetermineFailed) dosomething; catch(memoryAllocateFailed) dosomething; cat
4、ch(readFailed) dosomething; catch(fileCloseFailed) dosomething; ,1、异常的概念,和传统的方法比较异常的优点: 1.把错误代码从常规代码中分离出来 2. 把错误传播给调 用堆栈 3. 按错误类型和 错误差别分组,1、异常的概念,和传统的方法比较异常的优点: 4. 系统提供了对于一些无法预测的错误的捕获和处理 5. 克服了传统方法的 错误信息有限的问题,4.1 异常的概念,.,class ExcepTest public void main(String args) int b=0; int a; try a=4/b; catch(
5、ArithmeticException e) System.out.println(“divided by 0”); ,try URL url=new URL(http:/ catch(MalformedURLEception e) badURL=true; repaint();,2、异常的分类,异常是一个对象,它继承自Throwable类,所有的Throwable类的子孙类所产生的对象都是例外. Error:由Java虚拟机生成并抛出,Java程序不做处理. Runtime Exception(被0除等系统错误,数组下标超范围):由系统检测, 用户的Java 程序可不做处理,系统将它们交给缺
6、省的异常处理程序.但是用户也可以截获这些异常,进行自己的处理。,2、异常的分类,异常是一个对象,它继承自Throwable类,所有的Throwable类的子孙类所产生的对象都是例外. Exception(程序中的问题,可预知的): Java编译器要求Java程序必须捕获或声明所有的非运行时异常 throw:用户自己产生异常,.,Throwable,Error,Exception,RuntimeException,缺省的异常 处理程序,由用户捕获或 声明并处理,不做处理,用户自己产生的异常,要处理,2、异常的分类,3、捕获异常,捕获并处理异常 try /接受监视的程序块,在此区域内发生 /的异常
7、,由catch中指定的程序处理; catch(要处理的异常种类和标识符) /处理异常; catch(要处理的异常种类和标识符) /处理异常; ,3、捕获异常,常见的异常 ArithmeticException ArrayIndexOutOfBandsException ArrayStoreException IOException FileNotFoundException NullPointerException MalformedURLException NumberFormatException OutOfMemoryException,如果在使用能够产生异常的方法而没有捕获和处理,将不
8、能通过编译,3、捕获异常,捕获所有的异常 所有的异常都是Exception的子类 Exception的toString方法报告了异常产生的原因 下面的代码片断捕获了所有的异常,Try File file=new File(“c:aaa.txt”); catch(Exception e) System.out.printf(e.toString(); ,3、捕获异常,异常捕获的顺序 当异常产生时,程序匹配在catch从句中的异常类型,从他找到的第一个成功匹配中进入。 当执行完第一个成功匹配的类型后,程序不再匹配其他的catch从句,3、捕获异常,Try File file=new File(“c
9、:aaa.txt”); catch(FileNotFoundException e1) System.out.printf(e1.toString(); catch(IOException e2) System.out.printf(e2.toString(); catch(Exception e3) System.out.printf(e3.toString(); ,Try File file=new File(“c:aaa.txt”); catch(Exception e2) System.out.printf(e2.toString(); catch(IOException e1) Sy
10、stem.out.printf(e1.toString(); ,3、捕获异常,Runtime异常:由系统检测, 用户的Java 程序可不做处理,系统将它们交给缺省的异常处理程序.但是用户也可以截获这些异常,进行自己的处理。,3、捕获异常,If(t=null) throw new NullPointerException(); ,上面的语句将导致几乎所有的程序语句都必须被try-catch。这对于编写程序是不可能的。,3、捕获异常,例:编写Java程序,包含三种异常 算术异常, 字符串越界,数组越界 观察输出信息: 每个异常对象可以直接给出信息,4.3 捕获异常,class first_exce
11、ption public static void main(String args) char c; int a,b=0;int array=new int7; String s=“Hello“;,try a=1/b; catch(ArithmeticException ae) System.out.println(“Catch “+ae);,try array8=0; catch(ArrayIndexOutOfBoundsException ai) System.out.println(“Catch “+ai);,try c=s.charAt(8); catch(StringIndexOut
12、OfBoundsException se) System.out.println(“Catch “+se);,3、 捕获异常,一定会执行的程序块-finally 异常处理的统一出口 try /常规的代码; catch() /处理异常 finally /不论发生什么异常(或者不发生任何异常),都要执行的部分; ,3、 捕获异常,finally在文件处理时非常有用 try 对文件进行处理的程序; catch(IOException e) /对文件异常进行处理; finally 不论是否发生异常,都关闭文件; ,4、声明异常,一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理
13、这些异常,叫声明异常. 声明异常的方法 在产生异常的方法名后面加上要抛出(throws)的异常的列表,4、声明异常,returnType methodName(parameterlist) throws exceptionList,例:若因某种原因不想在创建URL的方法中处理异常,public method1() int x; try x=System.in.read(); compute(x); catch(IOException ioe) System.out.println(“read error”); catch(ArithmeticException e) System.out.pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 异常 处理
链接地址:https://www.31doc.com/p-3122966.html