美文网首页面试
异常处理机制

异常处理机制

作者: 01_小小鱼_01 | 来源:发表于2018-02-02 00:00 被阅读2次

JAVA异常机制

一、基本概念
在Java中这种在程序中运行时可能出现的一些错误称为异常。Java处理异常时,如果某个方法抛出异常,既可以在当前方法中进行捕捉,然后处理该异常,也可以将异常向上抛出,由方法调用者来处理。异常产生后,如果不做任何处理,程序就会被终止。
二、异常捕获和处理
1、Java异常处理涉及到五个关键字,分别是:try、catch、finally、throw、throws。
Try:可能发生异常的Java语句
Catch:激发被捕获的异常
finally:方法返回前总要执行的代码.
throw:用于抛出一个异常对象
throws:在声明方法时,用于指定该方法可能抛出的异常。
2、try、catch、finally三个语句块应注意的问题(笔试重点)
第一、try、catch、finally三个语句块均不能单独使用,三者可以组成 try...catch...finally、try...catch、try...finally三种结构,catch语句可以有一个或多个,finally语句最多一个。
第二、try、catch、finally三个代码块中变量的作用域为代码块内部,分别独立而不能相互访问。如果要在三个块中都可以访问,则需要将变量定义到这些块的外面。
第三、多个catch块时候,只会匹配其中一个异常类并执行catch块代码,而不会再执行别的catch块,并且匹配catch语句的顺序是由上到下。
第四、无论程序是否有异常,并且无论之间try-catch是否顺利执行完毕,都会执行finally语句。在以下特殊情况下,finally块不会执行:在finally语句块中发生异常;在前面代码中使用了System.exit()退出程序;程序所在线程死亡;关闭cpu。
第五、当程序执行try块,catch块时遇到return语句或者throw语句,这两个语句都会导致该方法立即结束,所以系统并不会立即执行这两个语句,而是去寻找该异常处理流程中的finally块,如果没有finally块,程序立即执行return语句或者throw语句,方法终止。如果有finally块,系统立即开始执行finally块,只有当finally块执行完成后,系统才会再次跳回来执行try块、catch块里的return或throw语句,如果finally块里也使用了return或throw等导致方法终止的语句,则finally块已经终止了方法,不用再跳回去执行try块、catch块里的任何代码了。
3、throw与throws
1、throws出现在方法函数头;而throw出现在函数体。throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。
三、异常结构
Throwable类派生了两个子类。Error类用来描述Java运行系统中的内部错误以及资源耗尽的错误;Exception类为非致命性类,可以通过捕捉处理使程序继续执行。Exception类根据错误发生的原因分为运行时异常和检查异常。如图所示。

1、检查异常
检查异常是RuntimeException以外的异常(IOException、SQLException等),必须显示的地处理否则无法编译通过。处理方法有两种,一是用try...catch捕捉异常,二是使用throws声明抛出该异常。
2、运行时异常
运行时异常的特点是Java编译器不会检查它,程序中可以选择捕获处理,也可以不处理。
3、错误
Error(错误):是程序无法处理的错误,表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。
四、自定义异常
自定义异常只需编写一个类继承Exception类(Throwable及其子类均可)即可。

相关文章

  • Java异常处理机制

    什么是异常处理机制: 异常处理机制: 让程序发生异常时,按照代码预先设定的异常处理逻辑,针对性地处理异常,让程序尽...

  • 异常处理

    JAVA严格的异常处理机制和类型检查机制 异常处理手贱异常非手贱异常 异常链处理 异常是在程序出错的时候能知道程序...

  • java 异常

    Java中异常处理是识别及响应错误的机制。有效地异常处理能使程序更加健壮。异常处理是非功能性需求。 异常的处理机制...

  • Java 异常

    异常处理机制 异常处理模型:终止模型:当异常发生时,就进入异常处理程序,处理结束并不返回异常发生位置继续执行;恢复...

  • SpringBoot 异常处理

    SpringBoot 异常处理机制,按照下面这4部分进行记录,讲解: SpringBoot 默认异常处理机制 自定...

  • python基础2

    Python的异常处理机制 Bug的常见类型 被动掉坑的解决方案 python提供了异常处理机制,可以在异常出现时...

  • NDK开发---C++学习(七):异常

    前言 C++的异常处理机制能够将异常检测与异常处理分离开来,当异常发生时,它能自动调用异常处理程序进行错误处理。把...

  • Java异常的深入研究与分析

    1 异常讲解 1.1 异常机制概述 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的...

  • 第6章 Dart基础语法 -- 异常处理

    1. 异常的定义 Dart的异常处理机制参考了Java语言的异常处理机制。与Java语言不同的是,Dart中不存在...

  • SpringMVC异常处理机制

    SpringMVC异常处理机制 1.1 异常处理的思路 系统中异常包括两类:预期异常和运行时异常RuntimeEx...

网友评论

    本文标题:异常处理机制

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