Java14-异常处理(上)

上传人:jiups****uk12 文档编号:54877655 上传时间:2018-09-21 格式:PPT 页数:16 大小:131.50KB
返回 下载 相关 举报
Java14-异常处理(上)_第1页
第1页 / 共16页
Java14-异常处理(上)_第2页
第2页 / 共16页
Java14-异常处理(上)_第3页
第3页 / 共16页
Java14-异常处理(上)_第4页
第4页 / 共16页
Java14-异常处理(上)_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《Java14-异常处理(上)》由会员分享,可在线阅读,更多相关《Java14-异常处理(上)(16页珍藏版)》请在金锄头文库上搜索。

1、异常处理(上),本节主要内容,异常概述 Java异常的层次关系 捕获异常,异常,不要指望你的程序永远不会出错.作为程序设计人员,尽可能的将程序设计的键壮,不要等出来问题再去解决 Java程序运行过程中所发生的异常事件可分为两类: 错误(Error):JVM系统内部错误、资源耗尽等严重情况,对于这类情况,程序基本上是无能为力. 异常(Exception): 其它因编程错误或偶然的外在因素导致的一般性问题,对于这种情况,可以用Java提供的Exception机制进行处理.例如: 对负数开平方根 空指针访问 试图读取不存在的文件 网络连接中断,异常例子,public class ExceptionT

2、est public static void main(String args)int a = 12,b =0;int d ;d = a / b ;System.out.println( a +“/“ + b +“ = “ + d ); ,异常例子,public class ExceptionExam1 public static void main(String args)java.util.Date d = null;System.out.println(d.getTime(); ,Error/Exception层次图,Throwable,Error,Exception,EOFExcept

3、ion,FileNotFoundException, ,AWTError,VirtualMachineError,ArithmeticException,NullPointerException,LinkageError, ,IOException,RuntimeException, ,ThreadDeath,Exception的层次关系,Exception的子类很多,大致可以分为三类,有关IO的IOException,有关运行时异常的RuntimeException,以及其他的异常 IOException是由于IO系统堵塞等原因引起的异常,包括(1) 试图从文件结尾处读取信息(2) 试图打开

4、一个不存在或者格式错误的url RuntimeException是由于程序编写过程中不周全而引起的,包括(1) 错误的类型转换(2) 数组越界访问(3) 数字计算错误(4) 试图访问一个空对象 其他异常(1) 用Class.forName()来初始化一个类的时候,字符串参数或对应的类不存在(2) 其他,常见异常,RuntimeException ArithmeticException:数学计算异常 NullPointerException:空指针异常 NegativeArraySizeException:负数组长度异常 ArrayOutOfBoundsException:数组索引越界异常 Cl

5、assNotFoundException:类文件未找到异常 ClassCastException:造型异常 IOException FileNotFoundException:文件未找到异常 EOFException:读写文件尾异常 MalformedURLException:URL格式错误异常 SocketException:Socket异常,访问文件异常,有些程序在编制的过程中,如果没有处理一次会,编译器会强制我们进行异常处理FileInputStream in = new FileInputStream(“c:/a.txt“);int b;b = in.read();while (b !

6、= -1) System.out.print(char) b);b = in.read();in.close();,运行时异常/已检查异常,Java语言规范中讲Error的子类和RuntimeException的子类都称为运行时异常.这类异常的特点是:Java编译器不会检查他们(所以也称为未检查异常),编译不会除错.只有在程序运行是才发生异常 将除RuntimeException类之外的异常类等称为已检查异常.这类异常的特定是:java编译器会检查他们.如果在程序中出现这类异常而没有处理的化,Java编译器会编译出错 对于RuntimeException,是可以通过编程将这种异常避免.例如:对

7、操作数进行判断,就可以避免出现除0的异常;对数组的长度进行判断,就可以避免数组索引越界的异常. 对于已检查异常,要在程序中通过try/catch进行捕获或通过throws在方法声明的时候将异常抛出.,Java异常处理机制,Java程序的执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。 当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。 如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。 程序员通常

8、只能处理违例(Exception),而对错误(Error)无能为力。,异常处理的try-catch-finally语句,try/ 可能会抛出特定异常的代码段 catch(MyExceptionType myException)/ 如果myException 被抛出,则执行这段代码 catch(Exception otherException) /如果另外的异常otherException被抛出,则执行这段代码 finally/无条件执行的语句 ,try-catch-finally,try将可能出现异常的代码都放在try代码块中,当然,也可以将其他的一些不会引起异常的代码也一并放到try代码块中

9、 catch 从句中引入一个可能出现的异常,一个try块可以和多个catch块配合以处理多个异常. 通过catch捕获多个异常的时候,如果这些异常之间有基础关系,就应该把子类的异常放在前面进行捕获 当try块内的任何代码抛出了由catch 子句指定的异常,则try代码端中的程序将会终止执行,并跳到相应的catch代码块中来执行 无论是否出现异常,程序最后都会执行finally代码块中的内容 用try/catch捕获和处理的异常是已检查的异常.而未检查异常不能用try/catch捕获,而是通过编程的方法尽量避免,捕获异常例子,import java.io.*; public class Catc

10、hExceptionpublic static void main(String args)tryFileInputStream fis = new FileInputStream(“c:a.txt“); int b; b = fis.read();while(b!= -1)System.out.print(char)b);b = fis.read();fis.close();catch(FileNotFoundException e)System.out.println(“FileNotFoundException:“+e.getMessage();catch(IOException e1)System.out.println(“IOException:“+e1.getMessage(); ,注意,千万不要对捕获的异常“不作为”,也就是说,不要让catch()语句中的代码是空的trycatch (FileNotFoundException e) ,try/catch与return语句,trycatch (FileNotFoundException e) System.err.println(“没有找到文件“);return; /System.exit(1); finally.,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号