JAVA可执行断言以测试前提条件

我是Java的新手,正在尝试通过在线资料学习一些知识。 对于一种情况,我应该写一个断言来验证操作的前提条件。

public String getCategory(float price, float size, float weight)

前提是所有这些都应该是积极的。 我不知道从哪里开始。 我该怎么写?

评论
  • 22相亲
    22相亲 回复

    尝试使用if条件

    public String getCategory(float price, float size, float weight){
        if(price < 0) {
           // do something or throw exception
        }
    }
    
    

    ,或使用断言,如果价格为负,则将给出“线程“主”中的异常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
    

    不要忘记,当您的程序被其他人使用时,在检查范围时使用异常会更好。我只在编码时使用断言,因为其他人可能不会在启用断言的情况下运行您的代码。 希望这会有所帮助,这是我的第一个答案。