Java中的断言是什么? 如何在 Java 中使用断言

已发表: 2021-05-20

目录

Java中的断言是什么?

Java中的断言用于确保任何程序假设的正确性,因为断言在执行时被假设为真。 如果断言为假,Java 虚拟机将抛出名为 AssertionError 的错误。 Java 中的断言主要用于测试目的。 布尔表达式与断言语句一起使用。 断言是一个语句,'asset' 关键字用于在 Java 中执行断言。

句法

以下是在 Java 中执行断言的两种方式:

1.断言表达式;

2.断言表达式1:表达式2;

如何在 Java 中使用断言?

默认情况下,Java 中禁用断言。 以下命令用于启用它们:

java -ea 测试

(要么)

java -enableassertions 测试

其中 Test 是 Java 文件的名称。

下面是一个演示断言语法的示例:

公开课测试

{

公共静态无效主要(字符串 [] 参数)

{

整数值 = 13;

断言值<= 12:“不是青少年”;

System.out.println(“少年的年龄是” + value);

}

}

输出

这是 Java 虚拟机生成断言错误的示例 -

类测试

{

公共静态无效主要(字符串参数[])

{

整数重量 = 30;

断言重量> = 20:“超重”;

System.out.println(“权重为”+value);

}

}

输出

启用断言后,

输出

线程“主”java.lang.AssertionError 中的异常:超重

这是它的样子:

资源

为什么使用断言?

Java中断言用于:

  • 检查程序员所做的假设是否正确。
  • 确保如果代码看起来无法访问,则它是无法访问的。
  • 确认注释中的假设是正确的,例如:

如果 ((y & 1) == 1)

{ }

else // y 必须是偶数

{ 断言 (y % 2 == 0); }

  • 确保未达到默认开关盒
  • 检查对象的状态

Java 中的断言用于方法的开头和方法调用之后。

在哪里使用断言?

Java 中的断言用于条件情况以及条件位于任何方法的开头时。 此外,对于私有方法的参数。 开发人员的代码提供了私有参数,并且当程序员需要检查他/她对参数的假设时。

以下是一些应避免使用断言的情况:

  1. 根据 Sun Microsystems 给出的规范,在检查公共方法中的参数时不应使用断言,因为这会导致适当的运行时异常,例如 NullPointerException 和 IllegalArgumentException。
  2. 它不应用作错误消息的替代品。
  3. 如果您不希望在任何情况下出现任何错误,请跳过使用断言。
  4. 它不应该用于命令行参数。
  5. 如果用户提供错误,则不应使用断言来检查公共方法中的参数。 相反,应该使用错误处理。

如何禁用断言?

以下命令用于禁用Java 中的断言:

java –da测试

要么

java - 禁用断言测试

其中 Test 是 Java 文件的名称。

在 Java 中使用断言的方法

示例 1:Java 断言

公共类主要{

公共静态无效主要(字符串参数[]){

String[] weekdays = {“周一”、“周二”、“周三”、“周四”、“周五”};

断言 weekdays.length == 2;

System.out.println(“一周有 ” + weekdays.length + ” weekdays”);

}

}

输出

当断言被禁用并且程序没有编译错误时,将实现以下输出。

启用断言后,我们将获得以下输出:

线程“main”中的异常 java.lang.AssertionError

还有另一种形式的断言语句,如下所示:

断言条件:表达式;

这种形式的断言语句具有传递给 AssertionError 对象的构造函数的表达式。 如果条件为假,则此表达式的值显示为错误的详细消息。 为了帮助调试问题,详细的按摩捕获并传输断言失败信息。

示例 2:带有表达式示例的 Java 断言

公共类主要{

公共静态无效主要(字符串参数[]){

String[] weekdays = {“周一”、“周二”、“周三”、“周四”、“周五”、“周六”};

assert weekdays.length == 5: “一周只有 5 个工作日”;;

System.out.println(“一周有 ” + weekdays.length + ” weekdays”);

}

}

输出

线程“main”中的异常 java.lang.AssertionError:一周只有 5 个周末

如上例所示,表达式被传递给 AssertionError 对象的构造函数。 由于启用了断言并且假设为假,因此在引发异常时会显示适当的消息。 该消息有助于诊断和修复导致断言失败的错误。

从世界顶级大学在线学习软件工程课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

在本博客中,您学习了如何使用断言来测试程序逻辑。 您还了解了为什么断言不能用作异常的替代品,并且您已经看到使用异常比异常处理更有效的情况。

如果您希望了解有关 Java 的更多信息并在您的编程生涯中升职,请探索印度最大的在线高等教育公司 upGrad 提供的免费 Java 在线课程。 访问upGrad了解更多信息。

如果您有兴趣了解有关 Java 全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为在职专业人士设计,提供 500 多个小时的严格培训,9+项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。

Java中的断言是什么?

在 Java 编程语言中,断言是一种用于确保应遵循某些要求的方法。 Java中的断言失败被认为是编译错误,即如果你的代码中有任何断言,代码将不会被编译,你会得到错误信息。 Java 的这一特性使您能够保护您的代码免受意外或不需要的运行时错误的影响。 Java assert 语句允许您在运行时测试程序的不变量。 断言通常用于检查代码是否没有进入无效状态。 在其他语言中,您可能会看到用于此目的的合同方法或前置/后置条件。

如何处理 Java 中的异常?

异常是运行时错误,这意味着它发生在程序运行时,而不是在编译期间。 当发生错误并且程序无法继续时,将引发异常。 您可以通过三种不同的方式处理异常: 忽略异常并允许程序退出。 使用 throw 关键字重新引发异常。 使用 try-catch 块来处理异常。 您可以记录或打印异常,然后让程序退出。 您可以使用 exit 关键字来终止程序。 您可以使用 throw 关键字重新引发异常。 您可以使用 try-catch 块来处理异常。 有一个 catch 块在其参数中接受异常。 无论是否抛出异常,都有一个 finally 块运行。

Java 中的 try-catch 是如何工作的?

try-catch 是 Java 中的一种机制,它允许您定义一个范围,您可以在其中以受控方式处理运行时错误。 它还确保遇到错误时执行流程不会完全停止。 try 和 catch 是用于实现异常处理的两个关键字。 每当程序中发生错误时,都会执行 try 块,然后由 catch 块处理错误。