gpt4 book ai didi

java - 是否可以简化组合 IF 语句的错误抛出?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:40 25 4
gpt4 key购买 nike

假设我有一个 if 语句,例如 if (bool1 && bool2) {}
我想根据这些 boolean 值中的哪一个失败显示不同的错误消息。通常我会做类似的事情:

if (bool1) {
if (bool2) {
// do something
} else {
// throw error for bool2 failing
}
} else {
// throw error for bool1 failing
}

现在我只确定 bool1 失败了,但是 bool2 也可能是坏的。因此,我会使用类似的东西:

if (bool1 && bool2) {
// do something
} else {
if (!bool1) {
// throw error for bool1 failing
}
if (!bool2) {
// throw error for bool2 failing
}
...
}

但是,如果有很多变量要检查,这可能会变得很长,尤其是如果您希望在多个变量失败时显示不同的错误。

// continuing on the dots of the above code block
if (!bool1 && !bool2) {
// throw error for both failing
}

有没有更有效的方法来做到这一点?


编辑:因为所有给出的答案都是可行的,哪个更好是主观的,我不会接受任何答案作为“那个”答案。请务必选择最适合您自己需求的方法/答案。
谢谢大家的建议。

最佳答案

我能想到的最好方法是嵌套您的if 语句。相反,我会独立检查每个错误条件并将错误消息累积在 StringBuilder 中:

StringBuilder errorMsg = new StringBuilder();

if (!bool1) {
errorMsg.append("bool1 condition failed\n");
}

if (!bool2) {
errorMsg.append("bool2 condition failed\n");
}

if (!bool3) {
errorMsg.append("bool3 condition failed\n");
}

// etc

if (errorMsg.length() > 0) {
throw new SomeException(errorMsg.toString());
}

// safely execute your code here

勾选有用StringBuilder class docs以供进一步引用。

关于java - 是否可以简化组合 IF 语句的错误抛出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37815405/

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