0
点赞
收藏
分享

微信扫一扫

【QT】QCustomPlot开发笔记

金牛豆豆 2023-07-13 阅读 71

异常介绍

对异常进行捕获,保证程序可以继续运行,提升程序的健壮性。

  • Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误,资源耗尽等严重情况。比如:StackOverflowError[栈溢出]和OOM(out of memory),Error是严重错误,程序会崩溃

  • Exception: 其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理,例如空指针访问,试图读取不存在的文件,网络链接中断等等,Exception分为两大类:运行时异常[程序运行时发生的异常] 和 编译时异常[编程时,编译器检查出的异常。]

异常体系图

在这里插入图片描述
在这里插入图片描述

常见五大运行时异常

空指针异常(NullPointerException)

当应用程序时图在需要对象的地方使用null时,抛出该异常

在这里插入图片描述

ArithmeticException数学运算异常

当出现异常的运算条件时,抛出此异常,例如:除数为0

ArrayIndexOutOfBoundsException数组下标异常

当遍历数组时,索引为负或大于等于数组大小,则该索引为非法索引。

ClassCastException类型转换异常

当试图将对象强制转换为不是实例的子类时,抛出该异常。比如:

在这里插入图片描述

NumberFormatException数字格式不正确异常

当应用程序试图将字符串转换成一种数值类型,该字符串不能转换为适当的格式时,则抛出该异常。 → 使用异常我们可以确保输入是满足条件的数字。

在这里插入图片描述

编译异常

编译异常是指在编译期间,就必须处理的异常,否则代码不能通过编译。

在这里插入图片描述

异常处理

try - catch - finally

程序员在代码运行中捕获发生的异常,然后自行处理

在这里插入图片描述
1、如果异常发生了,则异常发生后面的代码不会执行,直接进入到catch块

2、如果异常没有发生,则顺序执行try的代码块,不会进行到catch

3、如果希望不管是否发生异常,都执行某段代码(比如关闭连接,释放资源等),则使用finally

4、可以有多个catch语句,捕获不同的异常(进行不同的业务处理),要求父类异常在后,子类异常在前,即异常之间有继承关系。如果发生异常,只会捕获一个异常。
在这里插入图片描述
5、可以try - finally配合使用,这种写法相当于没有捕获异常,因此程序会直接崩掉,

应用场景:就是执行一段代码,不管是否发生异常,都必须执行某项业务逻辑。

在这里插入图片描述

举报

相关推荐

0 条评论