Java 中的 IllegalArgumentException 示例2024 年 9 月 10 日 | 阅读 3 分钟 Java 是一种广泛使用的编程语言,以其健壮性和保护能力而闻名。然而,即使在最谨慎编写的程序中,也可能出现错误。一种常见的错误类型是“非法参数异常”。在本节中,我们将探讨此异常是什么、为什么会发生,并提供完整的程序示例来说明其行为。 什么是非法参数异常?在 Java 中,IllegalArgumentException 是一种运行时异常,当调用一个带有非法或不适当参数的方法时发生。这意味着参数不符合方法的预期或违反了其先决条件。 InvalidArgumentExceptionExample.java 输出 Exception in thread "main" java.lang.IllegalArgumentException: Name cannot be null at InvalidArgumentExceptionExample.addName(InvalidArgumentExceptionExample.java:12) at InvalidArgumentExceptionExample.main(InvalidArgumentExceptionExample.java:8) 我们创建一个简单的程序来存储一个姓名列表。addName() 方法旨在将姓名添加到列表中,但它会检查提供的姓名是否为 null。如果姓名为 null,则会抛出带有描述性错误消息的 IllegalArgumentException。 在这种情况下,程序尝试将一个 null 姓名添加到列表中,由于该方法明确禁止 null 姓名,因此会触发 IllegalArgumentException。 让我们探讨 IllegalArgumentException 可能发生的常见情况: 1. Null 参数NullArgumentExceptionExample.java 输出 Exception in thread "main" java.lang.IllegalArgumentException: Text cannot be null at NullArgumentExceptionExample.printLength(NullArgumentExceptionExample.java:10) at NullArgumentExceptionExample.main(NullArgumentExceptionExample.java:6) printLength() 方法需要一个非 null 字符串,如果提供 null,则会抛出 IllegalArgumentException。 无效的数值InvalidNumberArgumentExceptionExample.java 输出 Exception in thread "main" java.lang.IllegalArgumentException: Number must be non-negative at InvalidNumberArgumentExceptionExample.calculateSquareRoot(InvalidNumberArgumentExceptionExample.java:10) at InvalidNumberArgumentExceptionExample.main(InvalidNumberArgumentExceptionExample.java:6) calculateSquareRoot 方法计算一个数字的平方根,但只接受非负值。如果提供了负数,则会抛出 IllegalArgumentException。 2. 空集合或无效集合InvalidCollectionArgumentExceptionExample.java 输出 Exception in thread "main" java.lang.IllegalArgumentException: List must be non-null and non-empty at InvalidCollectionArgumentExceptionExample.processList(InvalidCollectionArgumentExceptionExample.java:11) at InvalidCollectionArgumentExceptionExample.main(InvalidCollectionArgumentExceptionExample.java:6) processList() 方法需要一个非 null 且非空的列表。如果提供 null 或空列表,则会抛出 IllegalArgumentException。 处理 IllegalArgumentException 的最佳实践为了优雅地处理 IllegalArgumentException,请考虑以下最佳实践:
总之,理解和处理 IllegalArgumentException 对于编写健壮可靠的 Java 程序至关重要。通过验证输入、提供描述性的错误消息并遵循最佳实践,开发人员可以创建不仅功能齐全而且能够抵御意外输入的代码。如示例所示,在开发过程的早期捕获和解决非法参数有助于提高 Java 应用程序的整体稳定性和可维护性。 |
? 在 Java 中,字符串分割是一项重要且常用的操作。Java 提供了多种分割字符串的方法。但最常见的方法是使用 String 类的 split() 方法。在本节中,我们将学习如何分割一个...
阅读9分钟
在 Java 中,Guava 的 Sets.intersection() 方法返回一个不可修改的视图,表示提供的两个集合的交集。所有存在于两个集合中的元素或值都将被返回。返回集合和第一个集合的迭代顺序将相似。语法:public...
阅读 2 分钟
Java 中的 Stream.skip(long n) 方法是 Java 8 中引入的 Stream API 的重要组成部分。它使开发人员能够构建数据操作管道。skip() 方法在跳过数据集中的特定数量的元素时特别有用...
阅读9分钟
Shunting-yard 算法是计算机科学中一种常用的算法,用于将中缀表达式转换为后缀或前缀表达式。在后缀表示法(也称为逆波兰表示法,RPN)中,运算符放在操作数之后,而在前缀表示法(也称为波兰表示法….
阅读 8 分钟
堆栈在原则上是线性数据结构。简单的后进先出(LIFO)集合是最后添加到堆栈的项,也是第一个移除的项。堆栈的基本操作包括 push、pop 和 peek。但是,操作堆栈的中间元素...
5 分钟阅读
在 Java 中,final 是一个关键字,它确保原始类型、方法、变量类等的不可变性。它被视为不可访问的修饰符。如果我们想使用 final 关键字,我们必须在变量、方法和类之前指定它。它限制我们访问...
阅读 3 分钟
abstract 关键字在 Java 中 abstract 关键字是一个非访问修饰符,与类和方法一起使用以实现抽象。abstract 关键字的目的 abstract 关键字通过允许我们定义类的蓝图或契约而不提供完整的实现细节来促进抽象。它促进...
5 分钟阅读
在 Java 8 中,DoubleBinaryOperator 接口应运而生。它返回一个双精度值作为对它表示的两个双精度值执行操作的最终结果。它可以作为方法引用或 lambda 表达式使用,因为它是一个函数式...
阅读 3 分钟
Java 编程语言是一种平台无关的语言 (WORA),因为它不依赖于任何平台类型。当 Java 代码编译时,它通过 JIT(即时)编译器编译成字节码,而字节码与平台无关。要执行...
阅读 3 分钟
在 Java 中,问号 (?) 被视为或识别为通配符。Java 中通配符的主要用途是表示未知类型。在 Java 的各种场景或情况下,通配符可以用作参数、字段、...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India