java 异常 ppt,chapter06java的异常处理机制.ppt

41528d3028836879cd698677c3999917.gifchapter06java的异常处理机制.ppt

1,1,第6章 Java的异常处理机制,主要解决的问题: 1、什么是错误与异常? 2、造成Java异常的原因 3、什么是抛出?什么是捕获? 4、Java有哪些异常对象? 5、在程序中使用什么语句结构来处理异常? 6、能否自己创建异常对象?,2,2,本章主要内容,1.什么是异常处理机制 2.异常类的层次结构 3.异常的处理,3,3,异常示例,public class ExTest { public static void main(String[] args) { String friend[]={“lisa“,“bily“,“mary“}; for (int i=0;i<5;i++ ) { System.out.println(friend[i]); } System.out.println(“\n the end!“); } },4,4,,public class ExTest { public static void main(String[] args) { String friend[]={“lisa“,“bily“,“mary“}; try{ for (int i=0;i<5;i++ ) { System.out.println(friend[i]); } }catch (IndexOutOfBoundsException e) { System.out.println(“数组越界,溢出!“); } System.out.println(“\n the end!“); } },5,5,import java.io.*; public class EX_1 { public static void main(String[] args) throws IOException { String number_ch; int num; double total=3.25; System.out.println(“有多少个盒子?“); BufferedReader in=new BufferedReader(new StreamReader(System.in)); number_ch=in.readLine(); num=Integer.parseInt(number_ch); System.out.println(“fgfg:“+total*num); } },6,6,异常,异常:是在程序运行过程中发生的异常事件。如:除0溢出、数组越界、文件找不到等。,7,7,6.1 什么是异常处理机制,Java的异常处理机制是用来处理程序运行时的错误的有效机制,以往需要由程序员完成的程序出错情况的判别,在Java中改为由系统承担。通过系统抛出的异常,程序可以很容易地捕获并处理发生的异常情况。,,8,8,6.1.1 什么是错误与异常,根据错误的性质将运行错误分为两种类型: 1.Error错误:表示恢复很困难的情况下的一种严重问题。如内存溢出。不可能指望程序处理。 处理方法:不应该抛出异常。让程序中断。 2.Exception异常:表示一种设计或实现问题,如对负数开平方根、空指针访问等。 处理方法:编写代码来处理异常并继续程序执行,而不是让程序中断。--是程序员的责任,,9,9,6.1.2 异常发生的原因,异常发生的原因有以下三种: 1.Java 虚拟机检测到了非正常的执行状态 2.Java程序代码中的throw语句被执行。 3.异步异常发生。,,10,10,6.1.3 如何处理异常,Java的异常处理机制分为两个步骤: 1.抛出异常 Java规定:当语义限制被违反时,将会抛出(throw)异常,即产生一个异常事件,生成一个异常对象,并把它提交给运行系统,再由运行系统寻找相应的代码来处理异常。 2.捕获异常 异常抛出后,运行时系统从生成异常对象的代码开始,沿方法的调用栈进行查找,直到找到包含相应处理的方法代码,并把异常对象交给该方法,称为捕获(catch)异常。,,11,11,抛出异常,如果一个方法中的一个语句会产生一个没有在相应的try/catch块中处理的异常,那么该方法中止执行并将异常抛出到该方法的调用程序中。这个过程要一直延续到异常被处理。 如果一直到main()中仍没有被处理,那么该异常就中断程序的执行。,12,12,,13,13,6.2 异常类的层次结构,Java中的异常类具有层次结构组织。 如图所示。,,14,14,6.2.1. Exception异常类的子类,(1)RuntimeException运行时异常类 (2)NoSuchException方法未找到异常 (3)java.awt.AWTException图形界面异常类 (4)java.io.IOException输入输出异常类 (5)Exception异常类的其它子类,,15,15,(1)RuntimeException类主要包括以下异常子类:,·ArithmeticException算术异常类; ·ArrayStoreException数组下标越界异常类; ·ClassCastException类型强制转换异常类; ·IndexOutOfBoundsException下标越界异常类; ·NullPointerException空指针异常类; ·SecurityException违背安全原则异常类。,,16,16,(2)java.io.IOException类的子类有:,·IOException:申请I/O操作没有正常完成。 ·EOFException:在输入操作正常结束前遇到了文件结束符。 ·FileNotFoundException:在文件系统中,没有找到由文件名字符串指定的文件。,,17,17,(3)Exception异常类的其它子类:,·EmptyStackException; ·NoSuchFieldException; ·NoSuchException; ·ClassNotFoundException; ·CloneNotSupportedException; ·IllegalAccessException; ·InstantiationException; ·InterruptedException。,,18,18,6.2.2 Error错误类的子类,(1)VirtualMachineError虚拟机错误 OutOfMemoryError内存溢出错误 StackOverflowError栈溢出错误 (2)LinkageError链接错误 (3)NoClassDefNotFoundError类定义未找到错误 (4)java.awt.AWTError图形界面错误,,19,19,6.3 异常的处理,异常处理语句格式为: try {…} // 被监视的代码段,一旦发生异常,则交由其后的catch代码段处理 catch (异常类型 e) {…} // 要处理的第一种异常 catch (异常类型 e) {…} // 要处理的第二种异常 … finally {…} // 最终处理,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值