1. 首页
  2. 文档大全

第六章 异常处理与多线程

上传者:2****5 2022-06-25 21:26:23上传 PPT文件 134.50KB
第六章 异常处理与多线程_第1页 第六章 异常处理与多线程_第2页 第六章 异常处理与多线程_第3页

《第六章 异常处理与多线程》由会员分享,可在线阅读,更多相关《第六章 异常处理与多线程(36页珍藏版)》请在文档大全上搜索。

1、1第六章 异常处理与多线程2本章重点n了解异常和异常分类n理解异常处理机制ntry-cathch-finallyn自定义异常n多线程36.1 异常处理基础n含义:程序在运行过程中所发生的错误事件(如数组越界、文件操作时未找到文件、除法溢出等),而这些错误在设计时不能准确地识别出但又可能会发生或者不会发生。n正确理解程序设计中的三种错误: 语法错误(编译时的错误);逻辑错误(运行时的错误); 异常错误(运行时的错误但取决于执行环境)。46.1异常处理基础nJava通过面向对象的方法来处理异常,引入了异常类(Exception),对于程序运行时出现的异常事件,有其对应的错误处理机制.n每当程序运行

2、过程中发生一个系统可识别的运行错误时,系统就会产生该异常类的一个对象并作出处理,确保不对系统造成破坏,保证程序运行的安全性和强健性.56.2 异常处理的优点q异常处理的优点(OOP方式的错误处理编程):能将“错误处理”代码与“常规功能”代码相分离;能将错误沿调用栈向上传播;能按错误类型和错误对象分组,分门别类地加以处理。允许类似于 Switch Case 语句的分类过滤错误例外q非结构化错误处理的缺点代码很难阅读、调试和维护容易忽视错误66.2 异常处理的优点ThrowableErrorExceptionObjectAWTExceptionRuntimeExceptionIOException

3、7常见常见RuntimeExceptionRuntimeException本类异常一般不用特意处理,只要细心可以避免!本类异常一般不用特意处理,只要细心可以避免!8常见非运行时异常常见非运行时异常 本类异常必须处理,我们所指的异常处理就是本类异常必须处理,我们所指的异常处理就是针对这样的异常。针对这样的异常。96.3 异常处理机制n异常处理机制:主要体现在“抛出异常”并“捕获异常”这两个层次。n抛出异常:当程序执行过程中产生异常时,运行系统将抛出异常类对象(它代表某一异常类型的错误事件)。n捕获异常:用户程序或运行系统可以捕获该异常类对象(在函数的调用栈中查找能处理此异常事件的程序为止)并相应

4、地给出处理的方法(代码)。n如何捕获异常:采用try、catch、 finally语句块。106.3 异常处理机制捕获异常ntry语句块:它指定可能会产生异常的语句范围,也即为catch规定异常捕获的语句范围。ncatch语句块:它指明需要捕获异常事件的类型并相应地给出处理的方法(代码)。nfinally:它指定一代码块,不管是否有异常产生或是否捕获住该异常,程序都从此处继续向后执行。从而达到提供统一的出口(如关闭文件、清除系统资源等)。116.3 异常处理机制捕获异常ntry/catch异常处理代码块的基本形式try /监视 可能发生异常的代码块; catch(异常类型 异常对象名)/捕获并

5、处理异常异常处理代码块; 【finally 必须执行的代码;】当抛出一个异常时,异常会由相应的catch语句捕获并处理.与一个try相关的catch语句可以有多个,构成多重catch 语句,异常类型决定了要执行哪个catch语句. 如果没有抛出异常,那么try代码块就会结束,并且会跳过它的所有catch语句,从最后一个catch后面的第一个语句继续执行. 126.3 异常处理机制捕获异常例例 使用try/catch进行异常处理的情况.public class ExceptionExam0 public static void main(String args) int i,a; try / 监

6、视一代码块 i=0;a=42/i;return; catch (ArithmeticException e) /捕获一个被零除异常System.out.println(被零除); 136.3 异常处理机制捕获异常n与一个try相关的catch语句可以有多个.每一个catch语句捕获一个不同类型的异常.某些情况,由单个代码段可能引起多个异常.处理这种情况时就需要定义两个或更多的catch子句,每个子句捕获一种类型的异常.n当异常被引发时,每一个catch子句被依次检查,第一个匹配异常类型的子句被执行.当一个catch语句执行以后,其他的子句被忽略,程序从try/catch块后的代码开始继续执行.

7、146.3 异常处理机制捕获异常例例 捕获两种不同类型的异常public class ExceptionExam3 public static void main(String args) try int i = args.length;System.out.println(i =+i);int j=5/i;int k= 1,2,3 ;k5=0;catch(ArithmeticException e) System.out.println(被零除: + e); catch(ArrayIndexOutOfBoundsException e) System.out.println(Array in


文档来源:https://www.renrendoc.com/paper/212642410.html

文档标签:

下载地址