本篇文章借鉴于Java高级系列——何时使用、如何使用异常(Exceptions)
一、介绍
在Java中,异常是一个非常重要的工具,在程序流中异常可以发出一些反常的(异常的)情况并阻止程序进行更深入的执行。自然地,异常情况可能是致命的(程序不能执行任何操作并且会终止),也可能是可恢复的(程序可以继续执行,但是有些功能可能不可用)。
本文主要是说一些常用的异常关键词以及如何操作的。以下是5个异常关键词
-
try:try块,将有可能出现异常的代码放置在try块中
-
catch:catch块,如果try块的代码出现异常,则由catch块进行捕获并处理
-
finally:finally块,一定会执行的代码块,一般情况下在finally块中进行需要显示close的资源的关闭
-
throw:引发异常
-
throws:抛出异常
二、何时使用异常(Exceptions)
概括来讲,异常是在程序执行过程中的触发的一种事件(或者提示),它可以中断程序正常的执行流程。引入异常思想的诞生是为了替换过去所使用的错误码及状态检查技术。从那以后,异常的使用就越来越广泛,最终在许多的编程语言中被接受作为处理错误情况的标准方案,包括Java。
和异常处理相关的一个重要规则就是:不要忽略它们。每个异常都应该被记录而不是被忽视。但是,也有一些非常少见的情况可以安全的忽略异常,即异常根本没什么作用,不完成任何处理的情况。
异常在实践中也是非常重要的一部分,每个public方法在执行实际的逻辑之前都应该验证所有必须的先决条件并且当验证不通过时抛出合适的异常。
三、Exceptions的两种异常类
- Checked Exceptions
unchecked exceptions被用来发出和程序逻辑以及一些正在进行的假设相关的错误情况(如非法参数,空指针,不支持的操作等等)。所有的unchecked exceptions继承自RuntimeException,并且这也是Java编译器理解指定异常属于unchecked异常类的依据。
- Unchecked Exceptions
checked exceptions所代表的就是程序能够直接控制之外的一些非法情况(比如内存、网络、文件系统等)。所有checked exception都是Exception的子类。IOException可能是checked exceptions中最常用的一个。
四、图文创建异常代码
- 自动创建异常代码,省劲了🤭
- 抛出异常throws
- try块与catch
- finally块
- 引发异常throw
- 自定义异常