常见的下溢和上溢异常
我试图在java中获得溢出和下溢异常,但无法获得任何好的教程。具体来说,我希望学习
- 它们彼此之间有何不同?
- 这些例外的子类是什么?
- 在哪种情况下会抛出它们?
- 哪些可以处理,如何处理?
- 与它们相关的最佳实践是什么?
任何指向有用教程的链接都可以
我试图在java中获得溢出和下溢异常,但无法获得任何好的教程。具体来说,我希望学习
任何指向有用教程的链接都可以
好吧,OP谈到了想要了解堆栈溢出和算术溢出,以及它们相应的下溢。来了....
int
StackOverflowError
为了回答OP的另一个问题(参见注释),当你越过数组的边界时,会发出一个。IndexOutOfBoundsException
在 Java 算术中,溢出或下溢永远不会引发异常。相反,对于浮点算术,该值设置为非数字
,“无限”或零。
若要测试这些方法,可以使用静态方法:isNaN 或 isInfinite,使用适当的包装类。您可以根据需要处理此问题。例:
double d1 = 100 / 0.;
if (Double.isNaN(d1)) {
throw new RuntimeException("d1 is not a number");
}
if (Double.isInfinite(d1)) {
throw new RuntimeException("d1 is infinite");
}
对于某些操作,您可以获得算术异常,例如在整数数学中。dividing by zero
我刚刚问了一个相关的问题,关于一个完整的项目风格方法来处理这个问题。