gpt4 book ai didi

java - 使用前提条件在 Java 中进行调试

转载 作者:行者123 更新时间:2023-11-30 08:18:37 25 4
gpt4 key购买 nike

使用 Chromium 代码库时,我习惯了 CHECK(condition);DCHECK(contidtion)NOTREACHED; 等宏。他们向代码引入断言(通常是前提条件)并允许在日志中使用一些信息终止程序,调试构建 DCHECKNOTREACHED 也会停止调试器以调查案件。第一个仅在 Release模式下处于 Activity 状态,后两个仅在 Debug模式下处于 Activity 状态 - 当“不活动”时,它们将被空宏替换并且不会导致任何开销。

Java 中是否有一些库允许这样的事情?我知道我可以创建一些静态方法/对象并取决于配置交换配置,但我看不到避免产生开销的方法。此外,我不想重新发明轮子。

最佳答案

你可以使用assert关键字:

public void yourMethod(String arg) {
assert arg != null : "arg may not be null";
// ...
}

相当于

public void yourMethod(String arg) {
if (arg == null) throw new AssertionError("arg may not be null");
// ...
}

除非在启动 JVM 时给出 -ea 开关,否则断言将被禁用,并且在禁用时开销接近于 0。

NOTREACHED 等价的是 assert false;

相关:What does the "assert" keyword do?

关于java - 使用前提条件在 Java 中进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27408162/

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