迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java Throwable VS Exception 类

作者:迹忆客 最近更新:2023/07/13 浏览次数:

本文将介绍何时使用 Java 中的 Throwable 和 Exception 类。 这两个类都有其构造函数和方法来处理错误和异常。

首先,我们将了解这两个类的 Throwable 和 Exception 的介绍,然后,我们将了解两者之间的区别。


Java中Throwable类简介

在 java.lang 类的层次结构中,Throwable 类是 Error 和 Exception 类的父类或超类。 这意味着Error和Exception是由Java中的Throwable类继承的。

结论是 Throwable 类可以捕获 Java 虚拟机产生的所有错误和异常,无论是堆栈跟踪错误还是编译或运行时异常。

此外,Throwable 类在定义它的 java.lang 库中实现了 Serialized 接口。

用户可以在下面查看 Throwable 类的定义。

public class Throwable extends Object implements Serializable

在上面的类定义中,用户可以看到Throwable类继承了Object类,并实现了Serialized接口。

Throwable 的语法:

try {
    // some code
} catch(Throwable e) {
    // handle errors or exceptions
}

Throwable 类包含重载的构造函数,如下所述。

构造函数

   
Throwable() 此构造函数创建 Throwable 的新实例,并带有默认错误消息。
Throwable(String errorMessage) 此构造函数创建带有 errorMessage 消息的 Throwable 的新实例。
Throwable(String errorMessage, Throwable errorCause) 此构造函数还获取错误消息的原因,并使用 errorMessage 和 errorCause 创建 Throwable 的新实例。
Throwable(Throwable errorCause) 此构造函数创建 Throwable 的新实例,并将特定原因作为参数传递。

方法

这里我们解释了Throwable类的一些方法。

   
toString() 以字符串格式返回错误的描述。
getMessage() 以字符串格式返回错误消息。
getCause() 它返回 Throwable 当前实例的原因。
getLocalizedMessage() 返回 Throwable 的本地化描述。
getStackTrace() 它提供有关堆栈跟踪的信息。
printStackTrace() 它打印 Throwable 的当前实例。
setStackTrace(StackTraceElement[] stackTrace) 它允许设置 getStackTrace() 方法返回的堆栈跟踪元素。
initCause(Throwable Cause) 它允许用户初始化当前 Throwable 的原因。

错误

Errors 类包含停止程序执行的错误。

   
StackOverflowError 当堆栈或堆溢出时发生。
AssertionError 由于断言失败而发生。
VirtualMachineError 它缓存了Java虚拟机中的所有错误。
LinkageError 由于链接问题而发生。
OutOfMemoryError 由于设备内存不足或 JVM 内存不足而发生。

Java异常类简介

在 Java 中,异常是在运行时或编译时发生的不需要的事件。 可以在编译时捕获的异常,称为检查异常;只能在运行时捕获的异常,称为非检查异常。

Throwable 的语法:

try {
    // some code
} catch(Exception e) {
    // handle Exceptions only
}

在这里,我们定义了Java中的一些异常类型。

   
RuntimeException 所有未检查异常的类都继承它。
NullPointerException 由于空值或未定义值而发生。
ArithmeticException 由于算术运算失败而发生。
ArrayIndexOutOfBoundsException 当我们尝试访问大于其长度的数组索引时,就会发生这种情况。
NoSuchMethodException 当方法未定义时发生。
IOException 由于输入/输出操作失败而发生。
ClassNotFoundException 当类未定义时发生。
SQLException 数据库操作失败是导致该异常的原因。

程序员还可以通过继承Java的Exception类来定义异常。


我们应该使用哪个类,Throwable 还是 Exception

当我们查看 Throwable 和 Exception 类的语法时,乍一看它看起来很相似,因为我们都将它们与 try-catch 块一起使用。

Throwable类的实例可以捕获错误和异常,因为它们是Throwable的子类,但Exceptions的实例只能捕获程序中发生的异常。

在正常的Java应用程序中,很少会出现 LinkageErrorVirtualMachineErrorOutOfMemoryError 等错误。 主要是由于用户的错误而导致的异常。

因此,最佳实践是使用 Exception 类的实例而不是 Throwable 类。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java 错误 Java.Security.InvalidKeyException: Illegal Key Size

发布时间:2023/07/15 浏览次数:98 分类:Java

本篇文章介绍包含 java.security.InvalidKeyException: Illegal key size 的 Java 代码。 然后,我们将了解其可能的原因。最后,它通过消除指定的错误来引导我们找到解决方案。

Java 抛出运行时异常 Throw Runtime Exception

发布时间:2023/07/15 浏览次数:146 分类:Java

本篇文章介绍如何在 Java 中引发运行时异常。Java 抛出运行时异常 Runtime Exception 是所有 Java 异常的父类,这些异常发生时会导致程序崩溃或崩溃。

Java 中抛出新异常 Throw New Exception

发布时间:2023/07/15 浏览次数:130 分类:Java

本文将展示如何使用 if ... else 条件语句生成错误。 我们还将使用示例和解释来讨论该主题,以使该主题更容易。在 Java 中生成一个简单错误

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便