运行时异常RuntimeException的简介
RuntimeException
是 Java 中的一个核心类,它属于 java.lang
包,并且是所有运行时异常(runtime exceptions)的基类。这些异常通常在程序执行期间发生,通常是由代码中的错误导致,而不需要在代码中显式捕获。与 Exception
类(它表示可能由程序处理的异常)不同,RuntimeException
及其子类表示那些“运行时”应该被注意到的异常情况,但通常不需要在代码中显式捕获(除非有特殊需求)。
类功能
RuntimeException
类的主要功能是:
- 表示运行时异常:它定义了一个异常的基类,用于标识那些发生在运行时但通常不需要显式捕获的异常。
- 提供异常处理机制:通过继承自
Throwable
类,RuntimeException
提供了一系列方法来处理异常,包括获取异常消息、堆栈跟踪、异常原因等。
方法详解
-
public RuntimeException()
- 这是
RuntimeException
的无参数构造函数,它创建一个没有详细消息的新RuntimeException
。 - 使用
super();
调用父类(Exception
)的无参数构造函数。
- 这是
-
public RuntimeException(String message)
- 创建一个带有指定详细消息的新
RuntimeException
。 message
参数是异常的详细消息,通常用于解释异常的原因。- 使用
super(message);
调用父类(Exception
)的带消息构造函数。
- 创建一个带有指定详细消息的新
-
public RuntimeException(String message, Throwable cause)
- 创建一个带有指定详细消息和原因的新
RuntimeException
。 message
是异常的详细消息。cause
是引起此RuntimeException
的Throwable
。- 使用
super(message, cause);
调用父类(Exception
)的带消息和原因构造函数。
- 创建一个带有指定详细消息和原因的新
-
public RuntimeException(Throwable cause)
- 创建一个用指定原因和默认详细消息(该详细消息是从原因转换而来的)初始化的新
RuntimeException
。 cause
是引起此RuntimeException
的Throwable
。- 使用
super(cause);
调用父类(Exception
)的带原因构造函数。
- 创建一个用指定原因和默认详细消息(该详细消息是从原因转换而来的)初始化的新
-
protected RuntimeException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
- 这是一个受保护的构造函数,用于创建带有指定详细消息、原因、抑制状态和可写堆栈跟踪的
RuntimeException
。 message
是异常的详细消息。cause
是引起此RuntimeException
的Throwable
。enableSuppression
指示是否允许抑制异常。writableStackTrace
指示堆栈跟踪是否可写。- 使用
super(message, cause, enableSuppression, writableStackTrace);
调用父类(Throwable
)的对应构造函数。
- 这是一个受保护的构造函数,用于创建带有指定详细消息、原因、抑制状态和可写堆栈跟踪的
何时使用
通常,当你定义自己的运行时异常类时,你会从 RuntimeException
继承。例如,如果你有一个方法,它期望其参数满足某些条件,但调用者违反了这些条件,那么你可以抛出一个自定义的 RuntimeException
(例如 IllegalArgumentException
)来表明这是一个编程错误,而不是应该由调用者捕获的潜在可恢复异常。
然而,请注意,过度使用运行时异常可能会使代码难以理解和维护,因为调用者可能不期望在运行时处理这些异常。因此,在设计 API 时,应该仔细考虑哪些异常应该是检查异常(checked exceptions,即 Exception
的子类但不是 RuntimeException
的子类),哪些应该是运行时异常。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步