- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 异常处理与多线程
第六章 异常处理与多线程 本章重点 了解异常和异常分类 理解异常处理机制 try-cathch-finally 自定义异常 多线程 6.1 异常处理基础 含义:程序在运行过程中所发生的错误事件(如 数组越界、文件操作时未找到文件、除法溢出 等),而这些错误在设计时不能准确地识别出但 又可能会发生或者不会发生。 正确理解程序设计中的三种错误: 语法错误(编译时的错误); 逻辑错误(运行时的错误); 异常错误(运行时的错误但取决于执行环境)。 6.1异常处理基础 Java通过面向对象的方法来处理异常, 引入了异常类(Exception),对于程序运行时 出现的异常事件,有其对应的错误处理机 制. 每当程序运行过程中发生一个系统可识 别的运行错误时,系统就会产生该异常类 的一个对象并作出处理,确保不对系统造 成破坏,保证程序运行的安全性和强健性. 6.2 异常处理的优点 异常处理的优点(OOP方式的错误处理编程): 能将“错误处理”代码与“常规功能”代码相分离; 能将错误沿调用栈向上传播; 能按错误类型和错误对象分组,分门别类地加以处理。 允许类似于 Switch Case 语句的分类过滤错误例外 非结构化错误处理的缺点 代码很难阅读、调试和维护 容易忽视错误 6.2 异常处理的优点 常见RuntimeException 常见非运行时异常 6.3 异常处理机制 异常处理机制:主要体现在“抛出异常”并“捕获异常”这两个层次。 抛出异常:当程序执行过程中产生异常时,运行系统将抛出异常类对象(它代表某一异常类型的错误事件)。 捕获异常:用户程序或运行系统可以捕获该异常类对象(在函数的调用栈中查找能处理此异常事件的程序为止)并相应地给出处理的方法(代码)。 如何捕获异常:采用try、catch、 finally语句块。 6.3 异常处理机制—捕获异常 try语句块:它指定可能会产生异常的语句范 围,也即为catch规定异常捕获的语句范围。 catch语句块:它指明需要捕获异常事件的类 型并相应地给出处理的方法(代码)。 finally:它指定一代码块,不管是否有异常产 生或是否捕获住该异常,程序都从此处继续向后 执行。从而达到提供统一的出口(如关闭文件、 清除系统资源等)。 6.3 异常处理机制—捕获异常 try/catch异常处理代码块的基本形式 try //监视 { 可能发生异常的代码块; } catch(异常类型 异常对象名)//捕获并处理异常 { 异常处理代码块; } 【finally { 必须执行的代码;}】 当抛出一个异常时,异常会由相应的catch语句捕获并处理.与一个try相关的catch语句可以有多个,构成多重catch 语句,异常类型决定了要执行哪个catch语句. 如果没有抛出异常,那么try代码块就会结束,并且会跳过它的所有catch语句,从最后一个catch后面的第一个语句继续执行. 6.3 异常处理机制—捕获异常 例 使用try/catch进行异常处理的情况. public class ExceptionExam0 { ? public static void main(String args[]) { ??? int i,a; ? try { // 监视一代码块 ????? i=0; ?? a=42/i; return; ??? } catch (ArithmeticException e) { //捕获一个被零除异常 System.out.println(被零除); } ? } } 6.3 异常处理机制—捕获异常 与一个try相关的catch语句可以有多个.每一个catch语句捕获一个不同类型的异常.某些情况,由单个代码段可能引起多个异常.处理这种情况时就需要定义两个或更多的catch子句,每个子句捕获一种类型的异常. 当异常被引发时,每一个catch子句被依次检查,第一个匹配异常类型的子句被执行.当一个catch语句执行以后,其他的子句被忽略,程序从try/catch块后的代码开始继续执行. 6.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 }; k[5]=0; } catch(ArithmeticE
文档评论(0)