java 异常分类和处理机制

    一、背景介绍

       程序在运行过程中发生错误或异常情况是不可避免的,如果每一个运行时错误都由程序员手动控制和处理,其工作量是不可想象的。

     Java语言中的异常处理机制就解决的上述问题,把错误与异常的管理带到了面向对象的世界

Java语言定义了很多异常类,将运行错误和异常的信息和处理方法封装在了异常类中,帮助程序员检查和控制异常。即Java造好了工具,程序员只要学会使用工具。

二、java异常分类

Java语言按照错误严重性,从throwale根类衍生出Error和Exception两大派系

Error(错误):程序在执行过程中所遇到的硬件或操作系统的错误。错误对程序而言是致命的,将导致程序无法运行。常见的错误有内存溢出,jvm虚拟机自身的非正常运行,calss文件没有主方法。程序本生是不能处理错误的,只能依靠外界干预。Error是系统内部的错误,由jvm抛出,交给系统来处理。

EXCEPTION(异常):是程序正常运行中,可以预料的意外情况。比如数据库连接中断,空指针,数组下标越界。异常出现可以导致程序非正常终止,也可以预先检测,被捕获处理掉,使程序继续运行。


EXCEPTION(异常)按照性质,又分为编译异常(可检测)和运行时异常(不可检测)。

编译时异常:又叫可检查异常,通常时由语法错和环境因素(外部资源)造成的异常。比如输入输出异常IOException,数据库操作SQLException。其特点是,Java语言强制要求捕获和处理所有非运行时异常。通过行为规范,强化程序的健壮性和安全性。

运行时异常:又叫不检查异常RuntimeException,这些异常一般是由程序逻辑错误引起的,即语义错。比如算术异常,空指针异常NullPointerException,下标越界IndexOutOfBoundsException。运行时异常应该在程序测试期间被暴露出来,由程序员去调试,而避免捕获。

所以,java语言处理运行时错误有三种方式,

一是程序不能处理的错误,二是程序应该避免而可以不去捕获的运行时异常,三是必须捕获的非运行时异常。

三、java异常处理机制

java默认处理机制:

1抛出异常

2终止程序

异常处理程序机制:

1抛出异常

2try-catch-finally 捕获和处理异常


当Java程序运行到某个方法发生异常时,产生一个对应异常类对象,包含异常事件类型,发生异常是应用程序的状态,和调用过程等信息,然后抛出,运行系统开始查找有没又匹配异常处理程序,么有,就中断程序,有就将控制权交个程序处理程序,处理异常。






       


猜你喜欢

转载自blog.csdn.net/qq_42022528/article/details/80537120