不使用断言的主要原因是因为默认情况下未启用断言。因此,如果您的条件足够重要而需要断言,则不能依靠启用断言来完成工作。
正如其他答案正确指出的那样,它们专为开发时测试和调试而设计,因为如果在生产中禁用断言,则它们不会花费任何成本。我认为最好在测试框架中创建显式测试(例如,针对边缘条件的单元测试),而不要依赖在测试时启用断言的人。
但是,我看到的使用断言的一个很好的例子是检查私有方法参数。由于您控制对这些方法的访问,因此可以检查自己的类是否正确使用了该方法,而公共方法使用了更可靠的参数检查技术(注释,if语句,第三方库等)。这样,即使禁用了断言,您的方法也应受到保护,但是查看源代码的开发人员可以看到您方法的前提条件,并在处理该类时打开断言以获取额外的安全网。



