JAVAj基础-异常处理.ppt
《JAVAj基础-异常处理.ppt》由会员分享,可在线阅读,更多相关《JAVAj基础-异常处理.ppt(44页珍藏版)》请在三一办公上搜索。
1、异常(Exception),程序的错误通常包括:语法错误:指程序的书写不符合语言的语法规则,这类错误可由编译程序发现。逻辑错误:指程序设计不当造成程序没有完成预期的功能,这类错误通过测试发现。运行异常:指由程序运行环境问题造成的程序异常终止,如打开不存在的文件进行读操作、程序执行了除以0的操作。Java运行时错误称为异常。,1 什么是异常?(一),1 什么是异常?(二),异常(Exception)又称为例外,是指在程序运行过程中发生的非正常事件,这些事件的发生会影响程序的正常执行。如:进行数学中“无意义”的运算,例如除数为零、对负数求对数平方根等对数组进行操作时,超出了数组的最大下标程序所需进
2、行的I/O操作不能正常执行,如所需访问的文件不存在内存耗尽无法进行类的实例化JVM崩溃,2 为什么要异常处理?,对于任何语言的程序设计而言,错误的发生总是不可避免的为了加强程序的健壮性,程序设计时,必须充分考虑错误发生的可能性,并建立相应的处理机制。,3、异常对象,在Java语言中,我们用异常对象来表示不同的异常。所谓Java异常对象就是一个存放着相关错误信息的对象,如果方法运行时产生了异常,该方法就可以抛出一个异常对象为了表示不同种类的异常,Java语言中定义了许多异常类。,例子程序,public class ExampleOfException String lines=The first
3、 line,The second line,The last line;public static void main(String args)ExampleOfException eoe=new ExampleOfException();eoe.methodA();System.out.println(Program finished.);void methodA()methodB();void methodB()methodC();void methodC()for(int i=0;i4;i+)System.out.println(linesi);,The first lineThe se
4、cond lineThe last lineException in thread main java.lang.ArrayIndexOutOfBoundsException:3 at ExampleOfException.methodC(ExampleOfException.java:16)at ExampleOfException.methodB(ExampleOfException.java:12)at ExampleOfException.methodA(ExampleOfException.java:9)at ExampleOfException.main(ExampleOfExce
5、ption.java:6),4 Java中的异常类,在Java语言中,任何的异常对象都是Throwable类的直接子类或间接子类的实例。Java的类库已经提供了一些常见的异常类,如果这些异常类不能够满足要求,用户也可以创建自己的异常类。,5 Exception类,Exception的子类表示了不同类型的异常,例如RuntimeException表示运行时异常,而IOException表示I/O问题引起的异常。这些子类也可以被继承以对不同类型的异常进行细分,如RuntimeException还可细分为NullPointerException、ArithmeticException等;IOExce
6、ption还可细分为FileNotFoundException、EOFException等。,常见的异常类,ArithmeticExceptionArrayIndexOutOfBandsExceptionIOExceptionFileNotFoundExceptionNullPointerExceptionNumberFormatException,6 Error类,Error类表示Java运行时产生的系统内部错误或资源耗尽等严重错误。这种错误通常是程序无法控制和解决的,如果发生这种错误,通常的做法是通知用户并中止程序的执行。,常见的错误类,NoClassDefFoundErrorOutOfM
7、emoryErrorVirtualMachineError,7 必检异常与非必检异常,RuntimeException类及其子类被称为“运行时异常”一般发生在JRE内部也称“非必检异常”如NullPointerException其他异常被成为“非运行时异常”一般发生在JRE外部也称“必检异常”如IOException,8 异常处理的一般步骤,异常抛出异常捕获异常处理,8.1 抛出异常(一),方法中需要抛出异常时,可使用throw语句实现,具体步骤应该是:选择合适的异常类;创建该类的一个对象;使用throw语句抛出该对象。,8.1 抛出异常(二),例如,某方法readFile()对文件进行读操作
8、,根据前面章节的介绍可以知道:当进行I/O操作时,可能会产生I/O异常。所以,在方法readFile中如果读文件操作不成功,则应抛出I/O异常。如下列程序片断所示:,readFile()throws IOException if(读文件不成功)throw new IOExcepion();,8.1 抛出异常(三),如果一个方法可能抛出多个必检异常,那么必须在方法的声明部分一一列出,多个异常间使用逗号进行分隔:,Class MyClass public myMethod(String s)throws IOException,MalformedURLException,8.1 抛出异常(四),一
9、个方法必须通过throws语句在方法的声明部分说明它可能抛出而并未捕获的所有的“必检异常”,如果没有这么做,将不能通过编译。值得注意的是:如果在子类中覆盖了父类的某一方法,那么该子类方法不可以比被其覆盖的父类方法抛出更多的异常(但可以更少)。所以,如果被覆盖父类的方法没有抛出任何的“必检异常”,那么子类方法绝不可能抛出“必检异常”。,8.1 抛出异常(五),在下面的例子里,对于父类SuperClass而言,类SubClassA是正确的子类,而SubClassB则是错误的。,class SuperClasspublic superMethod()throws EOFException class
10、 SubClassA extends SuperClass/正确public superMethod()class SubClassB extends SuperClass/错误public superMethod()throws FileNotFoundException,8.2 异常的捕获(一),要捕获一个异常,程序员只需要在程序中设置一个try/catch块,其格式如下:try 抛出异常的代码 catch(某Exception类型 e)处理该异常类型的代码 catch(某Exception类型 e)处理该异常类型的代码,8.2 异常的捕获(二),当try块中的某条代码抛出异常时:首先,自
11、该语句的下一条语句起的所有try块中的剩余语句将被跳过不予执行;其次,程序执行catch子句进行异常捕获,异常捕获的目的是进行异常类型的匹配,并执行与所抛出的异常类型相对应的catch子句中的异常处理代码。,8.2 异常的捕获(三),需要注意的是:如果try块中没有任何的异常抛出,则所有的catch子句将会被跳过;如果try块中所抛出的异常对象类型与所有的catch子句中的所声明的异常类型都不匹配,则方法会立即中止,并将该异常对象继续抛出,沿调用堆栈传递。,example,public class ExampleOfException String lines=The first line,T
12、he second line,The last line;public static void main(String args)ExampleOfException eoe=new ExampleOfException();eoe.methodA();System.out.println(Program finished.);.void methodC()for(int i=0;i4;i+)try System.out.println(linesi);catch(ArrayIndexOutOfBoundsException e)System.out.println(Re-setting In
13、dex Value);,example,上面的例子中可能会产生数组越界异常,所以将其置于try块中,并在catch子句中对ArrayIndexOutOfBoundsException类型的异常进行捕获,并进行处理。如果try块中可能抛出多个类型的异常,程序员可以使用多个catch子句对这些异常进行捕获,每种异常类型对应一个单独的catch子句。需要注意的是,这些catch子句是顺序执行的。这意味着,异常对象总是被第一个catch子句首先捕获,如果类型不匹配,才会执行下一个catch子句。读者可以试着分析下面的程序片断,看看有什么样的问题存在。,问题,Java运行系统从上到下分别对每个catch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVAj 基础 异常 处理

链接地址:https://www.31ppt.com/p-6509351.html