JAVA 测试先决条件的可执行断言
JAVA executable assertion to test precondition
我是 Java 的新手,正在尝试通过在线资料学习一些东西。
对于一种情况,我应该编写一个断言来验证操作的先决条件。
public String getCategory(float price, float size, float weight)
前提是所有这些都应该是积极的。
我不知道从哪里开始。
这个怎么写?
尝试使用 if-condition
public String getCategory(float price, float size, float weight){
if(price < 0) {
// do something or throw exception
}
}
,或使用断言,如果价格为负将给出 "Exception in thread "main" java.lang.AssertionError:无效"
public String getCategory(float price, float size, float weight){
assert price >= 0 : "Not valid";
}
你可以试试
public String getCategory(float price, float size, float weight) {
assert price >= 0 && size >= 0 && weight >= 0: "Invalid parameters";
}
如果您想要更详细的错误消息:
public String getCategory(float price, float size, float weight) {
assert price >= 0: "price < 0";
assert size >= 0: "size < 0";
assert weight >= 0: "weight < 0";
}
当您希望程序 运行 启用断言时,运行 它带有选项 -ea,e。 g:
java -ea MyMainClass
不要忘记,当您的程序被其他人使用时,在检查边界时最好使用异常。我只在编码时使用断言,因为其他人可能不会 运行 你的代码启用断言。
希望这有帮助,这是我的第一个答案。
我是 Java 的新手,正在尝试通过在线资料学习一些东西。 对于一种情况,我应该编写一个断言来验证操作的先决条件。
public String getCategory(float price, float size, float weight)
前提是所有这些都应该是积极的。 我不知道从哪里开始。 这个怎么写?
尝试使用 if-condition
public String getCategory(float price, float size, float weight){
if(price < 0) {
// do something or throw exception
}
}
,或使用断言,如果价格为负将给出 "Exception in thread "main" java.lang.AssertionError:无效"
public String getCategory(float price, float size, float weight){
assert price >= 0 : "Not valid";
}
你可以试试
public String getCategory(float price, float size, float weight) {
assert price >= 0 && size >= 0 && weight >= 0: "Invalid parameters";
}
如果您想要更详细的错误消息:
public String getCategory(float price, float size, float weight) {
assert price >= 0: "price < 0";
assert size >= 0: "size < 0";
assert weight >= 0: "weight < 0";
}
当您希望程序 运行 启用断言时,运行 它带有选项 -ea,e。 g:
java -ea MyMainClass
不要忘记,当您的程序被其他人使用时,在检查边界时最好使用异常。我只在编码时使用断言,因为其他人可能不会 运行 你的代码启用断言。
希望这有帮助,这是我的第一个答案。