Java开发必备技能之异常处理机制

我们在从事java开发过程中,或多或少都会遇到一些我们程序员不被期望的事件,它会影响整个程序的整体运行,针对此类情况,Java提供了一种专门处理这类问题的机制:异常处理机制。

我们今天就来了解下它是如何来处理异常情况的。

Java异常简介

程序中出现的错误被称为异常

异常可分为两大类:编译时异常和运行时异常;

编译时异常一般是指语法错误,可以通过编译器的提示加以修正,这里我们不予讨论;

在这里插入图片描述

运行时异常包括:

运行错误:如数组下标越界,除数为0等;

逻辑错误:如年龄超过200岁等

在这里插入图片描述

产生异常的原因多种多样,大致有:

系统资源不可用:如内存分配失败,文件打开失败,数据源连接失败等等;

程序控制不当:如被零除,负数开方,数组下标越界等等。

在这里插入图片描述

当异常发生时,程序一般会作出如下反应:

发生异常的部分产生系统定义的错误信息;

程序意外终止,并将控制权返回操作系统;

程序中所有已分配资源的状态保持不变,这样将会导致资源泄漏。

那么我们就必须对有可能产生的异常进行处理

Try块与catch块

try块:一般用来监视有可能产生异常的代码部分;

catch块:当异常产生后,catch块捕捉异常,并在其中对异常进行处理。

在这里插入图片描述

代码示例:

在这里插入图片描述

finally块

无论try/catch块中发生了什么,finally块都一定会执行;

当异常发生时,程序可能会意外中断,有些被占用的资源就得不到清理。finally块可以确保执行所有的清理工作;

无论是否发生异常,finally块都将执行;

finally块是可选的,可视具体情况决定是否添加;

finally块必须和try块一起使用,不能单独存在

在这里插入图片描述

Throw关键字

throw语句用于手工抛出异常;

执行流程将在throw语句后立即停止,转而寻找与之类型相匹配的catch块;

throw语句的语法是:

throw (异常类型的实例);

Throws关键字

如果某个函数中的代码有可能引发异常,可以使用try/catch块进行处理,这种处理方式成为“内部处理”;

如果不方便在函数内部进行处理,也可以将异常往函数外部传递,这就要使用到关键字throws;

throws用于将函数内部产生的异常抛给主调函数;

一般语法:

返回值类型函数名(参数列表) throws异常类型{

……

}

常见的异常类
在这里插入图片描述

异常类的体系结构图

在这里插入图片描述

我们来总结一下:

异常是运行时产生的错误;

可以使用try/catch/finally块,配合使用来处理异常;

如有多种类型的异常要进行处理,可以使用多重catch块;

要手动发生异常,使用throw关键字;

任何抛到函数外部的异常,都必须使用throws关键字指定其异常类型;

请注意throw和throws的区别;

自定义异常类一般继承于Exception类;

Exception类是绝大部分异常类的父类,在异常类型不明的情况下,可以都认为是Exception。

OK,异常处理机制今天就分享到这里,你是不是学会了呢?

猜你喜欢

转载自blog.csdn.net/weixin_43664270/article/details/89137505
今日推荐