java - 这个 if 语句会抛出异常还是忽略它?

标签 java exception javacompiler

由于第一部分的计算结果为 false,此代码是否不会计算 if 语句的除以零部分?如果是这样,那么对于所有 Java IDE 中的所有情况都是如此吗?或者某些编译器会抛出异常?

int n = 0;
int x = 5;
if (n != 0 && x / n > 100) {
    System.out.println(" s1");
} else {
    System.out.println("s2");
}

最佳答案

来自JLS §15.23 :

The conditional-and operator && is like & (§15.22.2), but evaluates its right-hand operand only if the value of its left-hand operand is true.

所以不,你不会遇到异常(exception)。

显然,这假设您有一个单线程或线程安全的环境 - 如果您在混合中引入可见性问题,那么任何人都可以猜测。

关于java - 这个 if 语句会抛出异常还是忽略它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29802050/

相关文章:

java - 使用 Java 访问方法和参数历史记录

java - 在Hadoop中将整个文件文本添加为​​映射键

java - CXF 不生成枚举映射?

cocoa - 如何将 system.log 的所有输出重定向到我自己的日志?

javac 生成一个桥接方法,其中包含指向抽象方法的 invokespecial 指令

java - 使用多个外部 jar 文件编译和运行 java 程序

java - Android 中写入锁定文件

perl - 从 IO::File 获取异常?

c# - 具有自定义 Message 属性的继承异常类

java - 为什么 JavaCompiler 在实例化 Java 类时速度很慢?