美文网首页java之路
JavaSE梳理十一:异常

JavaSE梳理十一:异常

作者: 今天比昨天努力 | 来源:发表于2019-11-24 21:59 被阅读0次

    异常基本概念:用名字代表发生的问题,并且异常的名称容易理解。

    异常处理是Java中唯一正式的错误报告机制。

    想要构建大型,健壮,可维护的程序,需要用强制的形式消除错误处理过程中的随心所欲的因素。故出现异常处理机制。好处是降低错误处理代码的复杂度。

为什么需要异常处理?

答:在没有异常处理的程序中就必须使用判断语句,配合所想到的错误状况来捕捉程序中所有可能的错误。但为了捕捉这些错误,需要编写大量的判断语句,有可能还未必捕捉到所有错误,势必会降低程序运行效率。Java异常正好改进,易于使用,可自行定义异常类,处理抛出的异常同时又不会降低程序运行效率。

   自定义异常

    必须从已有的异常类继承,最好是选择意思相近的异常类继承。建立新的异常类型最简单的方法就是让编译器产生默认构造器。

   异常说明

    异常说明以礼貌的方式告知客户端程序员某个方法可能会抛出异常类型。使用关键字throws,后面跟所有潜在异常类型的列表。

被检查的异常:在编译时被强制检查的异常。

Throwable

Throwable是捕获异常类型的基类Exception的基类。调用栈轨迹printStackTrace,调用栈显式了“异常抛出点”的方法调用序列。有版本:输出到标准错误;版本:输出到流。

栈轨迹

printStackTrace方法提供的信息可以通过getStackTrace方法来直接访问,这个方法将返回一个由栈轨迹中的元素所构成的数组,其中每一个元素都表示栈中的一帧。栈顶:调用序列中的最后一个方法调用,栈底:调用序列中的第一个方法调用。

异常链

在捕获一个异常后抛出一个另一个异常,并且把异常原始异常信息保存下来被称为异常链。

方法:所有Trowable的子类在构造器中都可以接受一个cause对象作为参数,cause用来表示原始异常,这样就可以将原始异常传递给新的异常,故即使在当前位置创建并抛出新异常,也可以通过异常链追溯到最初异常发生的地方。三种基本的异常类提供cause:Error(用来Java虚拟机报告系统错误),Exception以及RuntimeException。如果其他类型需要链接需要使用initCause方法。

Throwable对象分为:Error用来表示编译时和系统错误;Exception表示可以被抛出的基本类型,值得被关心,在Java类库,用户方法以及运行时故障都可能会抛出异常。

运行时异常RuntimeException:会自动被虚拟机抛出,不需要再异常说明中声明方法抛出运行时异常,也被称为“不受检查异常”。这种异常属于错误,被自动捕获,不需要手写代码去捕获。

注意:只能在代码中忽略RuntimeException以及子类类型的异常,其他类型异常的处理都是由编译器强制实施。RuntimeException代表编译错误:无法预料错误,作为程序员应该在代码中进行检查的错误,譬如数组索引超出范围,需要注意数组大小。

finally

用途:可以保证:无论try发生什么,内存总能被释放。

适用场景:把除了内存之外的资源恢复到初始状态。譬如:打开的文件,网络连接等。

return中的finally:在一个方法中尽管有多个点可以返回,但是可以保证重要的清理工作可以进行。

assert

断言:肯定某一个结果返回值是正确的,如果最终这个结果返回值是错误的会通过断言检查肯定会提示错误信息。assert 1==0 : "1不等0";

相关文章

  • JavaSE梳理十一:异常

    异常基本概念:用名字代表发生的问题,并且异常的名称容易理解。 异常处理是Java中唯一正式的错误报告机制。 ...

  • JavaSE 异常

    1.异常 Exception异常是由系统或人为不正规操作导致系统不能再继续运行错误大部分由硬件导致的系统问题 蓝屏...

  • JavaSE 基础学习之五 —— IO 操作 (java. io

    接上篇《JavaSE 基础学习之四 —— 异常的处理》 五. JavaSE 基础学习 —— IO 操作 (java...

  • JavaSE之异常

    异常:运行期出现的错误。 1.Java异常是Java提供的用于处理程序中错误的一种机制,所谓错误是指在程序运行的过...

  • JavaSE-异常

    目录 [TOC] 第一章:认识异常 1.1-什么是异常? ​ 异常,在Java程序中指的是:因程序问题而中断程...

  • JavaSE之异常

    八、异常 目录:什么是异常、异常体系结构、Java异常处理机制、处理异常、自定义异常、总结 1.Error和Exc...

  • JavaSE之异常

    异常: 程序遇到的小问题。 Throwable(所有异常Exception和错误Error的祖宗)。 面试题:简述...

  • JavaSE梳理七:多态

    1,多态 在面向对象设计中,多态是继数据抽象和继承之间的第三种基本特征。多态作用消除类型之间的耦合关系。多态方法调...

  • JavaSE梳理八:接口

    接口和内部类提供将接口和实现分离的更加结构化的方法。 建立通用接口的唯一理由:不同的子类可以用不同的方法表示此...

  • JavaSE梳理十五:文件

    【462】 1,File 路径的分隔符在不同的系统中的体现: Windows:目录的分隔符:“\”,反斜杠。所以在...

网友评论

    本文标题:JavaSE梳理十一:异常

    本文链接:https://www.haomeiwen.com/subject/ojzzictx.html