gpt4 book ai didi

java - 正确使用 Java "assert"关键字

转载 作者:太空狗 更新时间:2023-10-29 22:50:39 25 4
gpt4 key购买 nike

我一直不明白 assert 是干什么用的,尽管我读了很多例子,但它们并没有真正让我知道我应该用它做什么或为什么要用它。

因此,我不会询问示例,而是提供一个示例,让我知道这是否是 assert 的正确用法。

// The idea is that the `mode` variable should be 0 or 1, and no other number.
switch(mode) {
case 0:
// do stuff
break;
case 1:
// do other stuff
break;

default:
// assert code?
}

如果这是正确的,请告诉我在这种情况下如何使用它。如果这不是它应该使用的方式,请提供示例。

最佳答案

在这种情况下不是。

如果您断言一个值,那么您就是在声明,在使用该值进行一些关键评估之前,它就是您断言的值。您可以在到达关键代码块之前断言该值不为空,或者小于 2,或者断言。

assert (mode >= 0 && mode < 2);  // Ensures that `mode` is between 0 and 1.
// Switch statement to follow

我不鼓励在这里使用它。您的代码不会被很好地阅读,除非您使用 -ea 标志启用断言,否则您的断言将不起作用。

相反,您可以抛出某种异常 - 如果它不是 0 或 1,则 mode 是无法处理的非法值,从而导致异常/未定义的行为。抛出某种异常。

switch(mode) {
case 0:
// do stuff
break;
case 1:
// do other stuff
break;
default:
throw new IllegalArgumentException("Mode is illegal");
}

关于java - 正确使用 Java "assert"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18907487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com