4.6 异常处理
Posted sungc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.6 异常处理相关的知识,希望对你有一定的参考价值。
4.6 异常处理
4.6.1 finally 什么时候被调用
- finally 在执行return方法之前执行
- finally的return会覆盖try或catch里面的return
- return的值会存储到一个位置 所以finally对返回值操作可以有影响 (可以当作存的是指针)
-
- 当返回类型为基本数据类型时,没有影响
- 引用类型时 (改变引用类型的值 不是改变引用)会有变化
- finally不一定被执行
-
- 进入try之前就发生了异常
- 在try会catch中强制退出 (System.exit(0))
4.6.2 异常处理原理
- 异常时程序在运行时发生的错误,JVM会抛出
- java语言将异常当作对象来处理
- 违反语义规则包括两种情况
-
- 一种是java类库内值的语义检查
- 另一种是开发人员扩展这种语义检查
- 异常继承图
4.6.3运行时异常和普通异常的区别
- Error
-
- 属于在运行期间发生了特别严重的错误
- 会导致程序终止
- 是由于逻辑错误导致的
- 不推荐捕获
- 应当解决错误
- Exception
-
- 表示可恢复的错误
- 编译器可以捕获到
- 两类
-
- 检查异常 编译器强制捕获
- 运行时异常 编译器没有强制对其捕获
- 异常处理注意事项
-
- 捕获异常应先捕获子类,然后再捕获父类
- 尽早抛出异常
- 可根据实际需求自定义异常
- 异常能处理就处理,不能处理就抛出
以上是关于4.6 异常处理的主要内容,如果未能解决你的问题,请参考以下文章
Flutter采坑之路 用真机跑起来的时候提示 initGradle失败,IO异常,downloading Gradle-4.6-all.zip失败
springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。为了区别不同的异常通常根据异常类型自定义异常类,这里我们创建一个自定义系统异常,如
Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )
Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )