异常处理
Posted 空城泪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理相关的知识,希望对你有一定的参考价值。
编译时异常:
指编译器在编译期告诉我们,调用的方法可能会抛出某个或某几个异常,需要我们处理,否则编译不通过,表现形式是在调用方法处打上红线,指过去出现Unhandeled Exception
另外,编译时异常又被称为检查异常
错误:
程序员不能够用代码去解决的问,往往是硬件、环境、系统问题;
一个我那阵的方法申明:访问修饰符 可选修饰符 返回类型,方法名
形参列表 throws 抛出的异常列表。
throws还会影响到重写的规范——子类重写方法不能抛出比父类重写方法更多的异常:
更多不是指throws 的类型更多,而是指范围更大。
Throw 和 throws 的辨析:
1、 Throw和throws都是关键字,都是属于异常处理部分的;
2、 Throw 是写在方法体当中的,后面跟的是一个异常对象;Throws是写在方法申明的最后的,后面跟的是一个或多个异常类
3、 当运行到throw 这句代码的时候,就会真正发生抛出一个异常对象的动作。Throws是在编译期警告本方法的条用者,有可能会发生哪些类型的异常;
4、 当一个方法体当中,有throw语句,不一定会有throws;除非throw后面跟的是编译时异常,那就必须写throws;
自定义异常要求:
1、自定义异常一定要继承Exception
2、自定义异常至少要有两个带参构造,一个带异常参,一个带字符创参。前者用于把其它异常类型转为为自定义异常,后者用于操作非JVM主动抛出的业务异常(比如:工资为负)
3、可以给自定义异常提供扩展方法
以上是关于异常处理的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )
Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )