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失败

Koa异常处理说明

springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。为了区别不同的异常通常根据异常类型自定义异常类,这里我们创建一个自定义系统异常,如

java异常处理详解!!

Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )

Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )