Java学习第3章类的方法,异常.pptVIP

  • 6
  • 0
  • 约2.64万字
  • 约 84页
  • 2019-12-02 发布于广东
  • 举报
* * * * * * * * * * * * * * * * * * * * * * * 再对异常进行分类 非检查型异常 不能期望程序捕获的异常(例如数组越界,除零等) 继承自RuntimeException 在方法中不需要声明,编译器也不进行检查 检查型异常 其他类型的异常 如果被调用的方法抛出一个类型为E的检查型异常,那么调用者必须捕获E或者也声明抛出E(或者E的一个父类),对此编译器要进行检查 3.2.2 错误的概念(续) 异常处理简介 * 3.2.2 错误的概念(续) ——异常和错误类的层次结构 异常处理简介 * Java预定义的一些常见异常 ArithmeticException 整数除法中除数为0 NullPointerException 访问的对象还没有实例化 NegativeArraySizeException 创建数组时元素个数是负数 ArrayIndexOutOfBoundsException 访问数组元素时,数组下标越界 ArrayStoreException 程序试图向数组中存取错误类型的数据 FileNotFoundException 试图存取一个并不存在的文件 IOException 通常的I/O错误 3.2.2 错误的概念(续) ——预定义的一些常见异常 异常处理简介 非检查型异常 检查型异常 * 测试系统定义的运行异常——数组越界出现的异常 import java.io.*; public class HelloWorld { public static void main (String args[ ]) { int i = 0; String greetings [ ] = {Hello world!, No, I mean it!, HELLO WORLD!!}; while (i 4) { System.out.println (greetings[i]); i++; } } } 3.2.2 错误的概念(续) ——例3_11 异常处理简介 * 运行结果 Hello world! No, I mean it! HELLO WORLD!! Exception in thread main java.lang.ArrayIndexOutOfBoundsException at HelloWorld.main(HelloWorld.java:7) 说明 访问数组下标越界,导致ArrayIndexOutOfBoundsException异常 该异常是系统定义好的类,对应系统可识别的错误,所以Java虚拟会自动中止程序的执行流程,并新建一个该异常类的对象,即抛出数组出界异常 3.2.2 错误的概念(续) ——例3_11运行结果 异常处理简介 * 3.2.3 异常的处理 对于检查型异常,Java强迫程序必须进行处理。处理方法有两种: 声明抛出异常 不在当前方法内处理异常,而是把异常抛出到调用方法中 捕获异常 使用try{}catch(){}块,捕获到所发生的异常,并进行相应的处理 异常处理简介 * 声明抛出异常 如果程序员不想在当前方法内处理异常,可以使用throws子句声明将异常抛出到调用方法中 如果所有的方法都选择了抛出此异常,最后 JVM将捕获它,输出相关的错误信息,并终止程序的运行。在异常被抛出的过程中, 任何方法都可以捕获它并进行相应的处理 3.2.3 异常的处理(续) ——声明抛出异常 异常处理简介 * 3.2.3 异常的处理(续) ——一个例子 public void openThisFile(String fileName) throws java.io.FileNotFoundException { //code for method } public void getCustomerInfo() throws java.io.FileNotFoundException { // do something this.openThisFile(customer.txt); // do something } 如果在openThisFile中抛出了FileNotfoundException异常,getCustomerInfo将停止执行,并将此异常传送给它的调用者 异常处理简介 * 语法格式 try { statement(s) } catch (exceptiontype name) { statement(s) } finally { stat

文档评论(0)

1亿VIP精品文档

相关文档