欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java面试必备之异常处理机制

程序员文章站 2022-03-28 10:19:20
...


      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类根据错误发生的原因分为运行时异常和检查异常。如图所示。
java面试必备之异常处理机制
            
    
    博客分类: java基础 java异常
 

 

1、检查异常

   检查异常是RuntimeException以外的异常(IOException、SQLException等),必须显示的地处理否则无法编译通过。处理方法有两种,一是用try...catch捕捉异常,二是使用throws声明抛出该异常。

2、运行时异常

   运行时异常的特点是Java编译器不会检查它,程序中可以选择捕获处理,也可以不处理。

3、错误

Error(错误):是程序无法处理的错误,表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。

四、自定义异常

    自定义异常只需编写一个类继承Exception类(Throwable及其子类均可)即可。

<!--EndFragment-->
  • java面试必备之异常处理机制
            
    
    博客分类: java基础 java异常
  • 大小: 150.6 KB
相关标签: java 异常