第十二章 异常处理

异常处理理论上由两种模型:1、终止模型:错误非常关键,一旦发生,程序不能在继续执行下去。无法挽回了。

             2、恢复模型:异常处理的工作是恢复程序的工作。然后尝试重新调用出错的方法。(不推荐,增加了过多的耦合,不容易维护)

创建自定义异常

  必须从已有的异常类继承。

重新抛出异常:

try{
  m();
} catch(Exception e){
  throw (Exception)e.fillInStackTrace();//m()中的异常发生地将被这边新的异常发生地取代,异常栈轨迹中将不会存在捕获的这个异常的栈轨迹(抛出的是相同异常的条件下)
}

  在捕获异常后抛出另一种异常时,捕获的的异常的栈轨迹将会被取代,与fillInStackTrace()效果类似。

异常链:常常会想要在捕获一个异常后抛出另一个异常,并且希望把原始异常的信息保存下来,这被称为异常链。只有三种异常支持异常链(通过构造器的方式):Error、Exception和RuntimeException。其他的异常类通过initCause()方法而不是构造器(在异常的后面插入)。

Java标准异常

  Throwable这个Java类被用来表示任何可以作为异常被抛出的类。Throwable对象可以被分为两种类型(指从Throwable继承而得到的类型):Error用来表示编译时和系统错误;Exception是可以被抛出的基本类型,在Java类库、用户方法以及运行时故障中都可能抛出Exception型异常。所以Java程序员关心的基本类型通常时Exception。

  

时间: 2024-11-10 11:29:01

第十二章 异常处理的相关文章

Java编程思想---第十二章 通过异常处理错误(中)

第十二章  通过异常处理错误(中) 12.4 创建自定义异常 我们不必拘泥于Java中已有的异常类型,Java提供的异常体系不可能预见所有的错误,所以可以自己定义异常类来表示程序中可能会遇到的特定问题:要自己定义异常类,必须从已有的异常类继承,最好是选择意思相近的异常类继承,建立新的异常类最简单的方法就是让编译器为你产生默认构造器,所以这几乎不用写多少代码: class SimpleException extends Exception { } public class InheritingEx

C和指针 (pointers on C)——第十二章:使用结构和指针

第十二章 使用结构和指针 这章就是链表.先单链表,后双向链表. 总结: 单链表是一种使用指针来存储值的数据结构.链表中的每个节点包含一个字段,用于指向链表的下一个节点. 有一个独立的根指针指向链表的第1个节点.单链表只能从一个方向遍历. 如何insert单链表:1.新节点的link字段必须设置为指向它的后面节点.2.前一个节点的link字段必须指向这个新节点. 为了防止可能会插入链表的起始位置这种情况,在C中,可以保存一个指向必须进行修改的link字段的指针,而不是保存一个指向前一个节点的指针.

《构建之法》第十一、十二章学习总结

第十一章的内容是软件设计与实现. 在第一节中,讲的是关于分析和设计方法,向我们介绍在"需求分析"."设计与实现"阶段."测试""发布"阶段该搞清楚的问题. 在第二节中,讲的是关于图形建模和分析方法.在表达实体和实体之间的关系时,可以用到思维导图(Mind Map).实体关系图(ERD).UCD ;在表达数据的流动时,可以用到DFD工具:在表达控制流的时候可以用到FSM工具:前面提到的这些图形建模方法各有特点,UML却可以有一个

C primer plus 第五版十二章习题

看完C prime plus(第五版)第十二章,随带完成了后面的习题. 1.不使用全局变量,重写程序清单12.4的程序. 先贴出12.4的程序,方便对照: 1 /* global.c --- 使用外部变量 */ 2 #include <stdio.h> 3 int units = 0; //一个外部变量 4 void critic(void); 5 int main(void) 6 { 7 extern int units; 8 9 printf ("How many pounds

构造之法第十一、十二章

第十一章 软件设计与实现 图形建模和分析方法 1表达实体和实体之间的关系(思维导图) 2实体关系图 3Use Case Diagram 表达数据的流动 (1)和管理机构相关的数据流 (2)和读者相关的数据流 (3)和新书入库相关的数据流 (4)和时间相关的数据流 表达数据的流动 (1)和管理机构相关的数据流 (2)和读者相关的数据流 (3)和新书入库相关的数据流 (4)和时间相关的数据流 其他设计方法 1.形式化的方法 2.文学化编程 第十二章 用户体验 用户体验的要素 1.用户的第一印象 2.

Java 第十二章 继承 笔记

Java 第十二章  继承 笔记 一.使用继承:     1)方便修改代码     2)减少代码量 二.super 继承object 类:super 访问父类的无参构造:super 指的是object 的无参构造.     例:子类调用父类:super.属性 / super.方法    注意:子类不能继承父类私有属性:得用set.get方法来调用:    super只能写在代码块的第一句:super只能调用非私有的方法:    super只能出现在子类的方法和构造方法中. 三.不能被继承的父类成

JavaScript DOM编程艺术-学习笔记(第十二章)

第十二章 1.本章是综合前面章节的所有东西的,一个综合实例 2.流程:①项目简介:a.获取原始资料(包括文本.图片.音视频等) b.站点结构(文件目录结构) c.页面(文件)结构 ②设计(切图) ③css -  base.css用于引入使用的css文件 color.css  - 用于设置样式 layout.css - 用于设置布局 Typography.css - 用于设置版式 3.题外话:①在实际开发中,即使是一个空白项目也往往不会从一无所有做起,而借助的平台一般会提供目录结构,所以需要把自己

R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验

第十二章:重抽样与自助法 本章,我们将探究两种应用广泛的依据随机化思想的统计方法:置换检验和自助法 12.1 置换检验 置换检验,也称随机化检验或重随机化检验. 有两种处理条件的实验,十个受试者已经被随机分配到其中一种条件(A或B)中,相应的结果变量(score)也已经被记录.实验结果如下: 如果两种处理方式真的等价,那么分配给观测得分的标签(A处理或B处理)便是任意的.为检验两种处理方式的差异,我们可遵循如下步骤: (1) 与参数方法类似,计算观测数据的t统计量,称为t0: (2) 将10个得

第二十二章 TCP/IP层的实现

                      第二十二章    TCP/IP层的实现        我比较喜欢先难后易,如果把GPU显示管理.和网络管理拿下后:我会从头整理.改写一遍APO操作系统.这样,就会形成APO操作系统的锥形.也获得了全局观.内核CPU线路.和用户CPU线路,你可以将它们看成是独立的2个32位CPU核:内核CPU主要任务是实时处理.硬件中断,256个实时线程包含了一些中断程序的后半部.用户CPU主要是动态优先级进程.线程调度,各种应用程序的运行:2个核之间是通过消息交互.句