异常处理

Posted 竹狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理相关的知识,希望对你有一定的参考价值。

一、异常基本介绍

概念:将程序中发生的不正常情况称为“异常”,异常分为两类:运行时异常和编译时异常

二、异常体系图

三、异常处理方式

一、try...catch...finally

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

没有finally的异常捕获方式

二、throws

将发生的异常抛出,交给调用者来处理,最顶级的处理着就是JVM,处理机制:

1、如果一个方法在执行中可能生成异常,但不确定如何处理这种异常,则此方法应显示的声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理
2、在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是他的父类

三、使用细节

  1. 对于编译异常,程序必须处理
  2. 对于运行时异常,程序如果没有处理,默认就是throws的处理方式
  3. 子类重写父类方法的时候,对抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的一致,要么为父类抛出的异常类型的子类型
  4. 在throws过程中,如果有方法try...catch,就相当于处理异常,不必使用throws

四、自定义异常

当程序中出现了某些错误,但该错误信息并没有在throwable子类中处理,这个时候可以自己设计异常类,用于描述该错误信息

一、自定义异常步骤

  1. 定义类,自定义异常类名继承Exception或者RuntimeException
  2. 如果继承Exception,则属于编译异常
  3. 如果继承RuntimeException,则属于运行异常

二、throw和throws区别

我亦无他,唯手熟尔

以上是关于异常处理的主要内容,如果未能解决你的问题,请参考以下文章

java异常处理详解!!

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

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

异常处理,约束,MD5加密,日志处理

PHP异常处理

Java的异常处理语法