Java中引发算术异常()的所有无效操作的异常列表?
是否有一个在Java中抛出ArithmeticException
的所有可能操作(如除零)的综合列表
换句话说:例如,可以将这些异常捕获为
catch (ArithmeticException e) {
e.printStackTrace();
}
对于被零除的情况,信息如下:
java.lang.ArithmeticException: / by zero
at [filename:line number]
当然,此消息是编译器可以使用的预定义数量。 所以我的问题是,在哪里可以找到编译器可能生成的算术异常消息的完整列表
# 1 楼答案
没有完整的清单,但以下是一些原因
似乎有两种类型:
到目前为止,我发现:
Normal and Abrupt Completion of Evaluation (JLS §15.6):
^{} ,
Math.subtractExact(int x, int y)
,Math.multiplyExact(int x, int y)
,Math.incrementExact(int a)
,Math.decrementExact(int a)
,Math.negateExact(int a)
:Math.addExact(long x, long y)
,Math.subtractExact(long x, long y)
,Math.multiplyExact(long x, long y)
,Math.incrementExact(long a)
,Math.decrementExact(long a)
,Math.negateExact(long a)
:Math.toIntExact(long value)
:Math.floorDiv(int x, int y)
,Math.floorDiv(long x, long y)
,Math.floorMod(int x, int y)
,Math.floorMod(long x, long y)
:^{} :
BigDecimal.divide(BigDecimal divisor, int scale, int roundingMode)
,BigDecimal.divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
,BigDecimal.divide(BigDecimal divisor, int roundingMode)
,BigDecimal.divide(BigDecimal divisor, RoundingMode roundingMode)
,...:
# 2 楼答案
下面是通过在JRE8中搜索算术异常的构造函数,使用Eclipse创建的列表:
此不包含调用此方法的方法