Java 中的异常类2025年8月5日 | 阅读 6 分钟 错误是程序执行时出现的问题、bug 或人为错误。异常会中断程序的流程并异常终止程序。不建议异常终止程序,为此,我们需要处理这些异常。 Java 提供了 Java.lang.Exception 类来处理异常,该类继承了 **Object** 和 **Throwable** 类的属性和方法。 java.lang.Throwable 类的方法addSuppressed()、fillInStackTrace()、getCause()、getLocalizedMessage()、getMessage()、getStackTrace()、getSuppressed()、initCause()、printStackTrace()、printStackTrace()、printStackTrace()、setStackTrace() 和 toString()。 java.lang.Object 类的方法clone()、equals()、finalize()、getClass()、hashCode()、notify()、notifyAll() 和 wait()。 Exception 类拥有一系列子类,用于处理不同类型的异常,例如 **IOException、NotBoundException** 和 **NotOwnerException** 等。 Exception 类的所有子类都以 Throwable 的形式存在,表示应用程序希望捕获的条件。 Exception 类提供了以下 5 个构造函数: 1. public Exception()public Exception () 构造一个带有 null 详细消息的异常。可以通过后续调用 Throwable.initCause(Java.lang.Throwable) 来初始化 cause。这是一个默认构造函数,不接受消息和 Throwable cause 参数。 2. public Exception(String message)public Exception( String message) 使用给定的详细消息构造一个新的异常。与默认构造函数一样,可以通过后续调用 Throwable.initCause(Java.lang.Throwable) 来初始化 cause。这是一个参数化构造函数,接受 String 类型的参数作为详细消息。详细消息会被保存,以便 Throwable.getMessage() 方法可以检索它。 参数
3. public Exception(String message, Throwable cause)这是 Exception() 构造函数的另一种变体,它接受两个参数,即 **message** 和 **cause**。它使用给定的详细消息和 cause 构造一个新的异常。与 cause 关联的 **message** 不会自动包含在异常的详细消息中。 参数 4. public Exception(Throwable cause)这是 Exception() 构造函数的另一种变体,它只接受一个参数,即 **cause**。该构造函数会创建一个带有给定 cause 和 cause 的详细消息的 Exception。 它主要用于对其他可抛出对象进行包装的异常。 参数 cause 会被保存,以便 Throwable.getCause() 方法可以检索它。null 值表示 cause 不存在或未知。 5. protected Exception(String message, Throwable cause, Boolean enableSuppression, Boolean writableStackTrace)它与其他构造函数略有不同。它也是一个参数化构造函数,接受 4 个参数,即 **message、cause、enableSuppression** 和 **writableStackTrace**。 它使用指定的参数创建一个异常。 参数 使用 Exception 类创建自定义异常Java 中有一系列预定义的异常。很多时候,我们需要创建自己的异常来处理错误。我们使用自定义异常来根据用户需求定制异常。 让我们看一些 Exception 类的例子,并了解如何在 Java 中创建自己的 Exception。 CustomExceptionExample1.java 输出 ![]() 描述 在上面的代码中,我们创建了一个自定义异常 InvalidAgeException。我们从用户那里获取输入,以检查用户是否有资格参加考试。我们通过将用户输入传递给 checkEligibility() 方法来调用它。checkEligibility() 方法检查给定的年龄是否大于 18,因为 18 岁及以上的用户才有资格参加考试。当方法发现年龄小于 18 时,它会抛出 InvalidAgeException。main() 方法中的 catch 块将处理此异常并打印异常的详细消息。 CustomExceptionExample2.java 输出 ![]() 描述 在上面的代码中,我们创建了自定义异常 AlreadyExistException。我们从用户那里获取输入,将其添加到 languages ArrayList 中。我们通过将用户输入和 languages ArrayList 传递给 checkExistence() 方法来调用它。checkExistence() 方法检查给定的语言是否在 languages ArrayList 中。当方法发现用户输入的语言在 languages ArrayList 中时,它会抛出 AlreadyExistException。main() 方法中的 catch 块将处理此异常并打印异常的详细消息。如果 checkExistence() 方法在 languages ArrayList 中找不到给定的语言,它会将用户输入的语言添加到 languages ArrayList 中。 |
开发人员或程序员面临的常见错误之一是 Java 中的不可达代码错误。当 Java 中无法执行一个或多个语句时,就会发生不可达代码错误。例如,如果我们编写了一个语句,其后...
阅读 3 分钟
在本节中,我们将学习什么是卡迈克尔数,并创建 Java 程序来检查给定数字是否为卡迈克尔数。卡迈克尔数程序经常在 Java 编码面试和学术界中出现。卡迈克尔数 一个复合数 n,它...
阅读 4 分钟
Niven 数,也称为 Harshad 数,是数论中具有重要意义的迷人数学实体。Niven 数是可被其数字之和整除的正整数。在本文中,我们将探讨 Niven 数的概念,深入研究...
阅读 4 分钟
javax.swing 包包含 ImageIcon 类,该类扩展了 Object 类,并实现了 Serialisable 和 Icon 接口。它旨在显示源自图像的图标,并支持 MediaTracker 用于预加载这些图像。该类便于从文件路径创建图标或...
阅读 3 分钟
图像处理是计算机图形学和视觉的关键方面,涉及对图像的操纵和分析以提取有价值的信息或提高其质量。Java 凭借其强大的库和简单的语法,提供了强大的图像处理工具。图像的一个基本方面是...
阅读 6 分钟
Codility 的 Passing Cars 问题只是众多典型算法问题之一,其主要目标是确定在同一条道路上朝相反方向行驶的有效成对汽车的总数。更具体地说,问题要求计算...
阅读 4 分钟
在本节中,我们将讨论什么是全字母句。我们还将创建一个 Java 程序来检查给定的字符串是否为全字母句。什么是全字母句?如果一个字符串包含从 a 到 z 的所有字母,则称该字符串为全字母句...
5 分钟阅读
在 Java 中,继承使一个类能够采用另一个类的行为和功能。从中继承功能和行为的类被称为基类、父类或超类。接收类通常被称为子类,...
阅读 4 分钟
对象是 OOPs 语言的基本构建块。在 Java 中,没有对象我们就无法执行任何程序。有多种创建 Java 对象的方法,我们将在本节中讨论,并学习如何创建……
阅读 6 分钟
Java 8 引入的 java.util.function 包包含 ToIntFunction 接口,该接口用于在语言中实现函数式编程。它表示一个接受 T 类型参数并输出整数值的函数。只有一个通用...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India