java - Math.incrementExact(int a)

标签 java api

为什么每个 API 不抛出异常?:

Returns the argument incremented by one, throwing an exception if the result overflows an int.

System.out.println(Math.incrementExact(2_147_483_647 + 1));

返回-2147483647

最佳答案

这是因为您将 Integer.MIN_VALUE 传递给 Math.incrementExact 函数。

您的表达式 2_147_483_647 + 1 首先被求值,由于它溢出,结果为 -2147483648。然后将其传递给 Math.incrementExact,结果为 -2147483647

你想做的是

System.out.println(Math.incrementExact(2_147_483_647));

这会导致java.lang.ArithmeticException:整数溢出

关于java - Math.incrementExact(int a),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50524904/

相关文章:

java - Spark 流作业已退出,代码为 11

java - 在 Android 中使用 strings.xml 资源文件存储大文本是否可以?

ios - 使用 Swift 3 将图像转换为 Base64 时出现问题

java - org.openqa.selenium.InvalidSelectorException : invalid selector SyntaxError: Unexpected token } using XPath through Selenium Java

java - spring 集成中的运行时可配置动态路由

rest - 通过 jmeter 测试时更改代理

php - 使用 curl -F 标志发布嵌套参数

javascript - 使用 Google-charts api 中的饼图切片将切片点击导航到不同的页面

iphone - 如何允许用户使用适用于 iOS 的 Facebook SDK 将我们的 Facebook 公司资料设为 "Like"?

Java:如何创建可在 Outlook 中打开的带有附件的 EML 或 MSG 文件