常见的下溢和上溢异常
我试图获取Java中的上溢和下溢异常,但找不到任何不错的教程。我特别想学习
- 它们彼此之间有何不同?
- 这些异常的子类是什么?
- 在哪种情况下会抛出它们?
- 其中哪些可以处理,如何处理?
- 与它们相关的最佳实践是什么?
任何指向有用教程的链接都可以
回答:
好的,OP曾经想了解堆栈溢出和算术溢出及其对应的下溢。开始....
- 当数字太大而无法容纳其值类型时,就会发生算术溢出。例如,a
int
保持值介于-2 31和2 31 -1之间(含)。如果您的电话号码超出这些限制,则会发生溢出,并且电话号码“回绕”。这些不会导致在Java中生成异常。 - 当浮点数变得太小以至于不能很好地与零区分开(算出的精度被截断)时,就会发生算术下溢。在Java中,这些也不引起异常。
- 当您调用一个函数,又调用另一个函数,然后又调用另一个函数,然后再调用另一个函数时,就会发生堆栈溢出……并且函数调用堆栈变得太深。
StackOverflowError
当发生这种情况时,您会得到一个提示。 - Java中不会发生堆栈下溢。它的运行时系统应该可以防止此类情况的发生。
为了回答OP的其他问题(请参见注释),当您超出数组的边界时,将IndexOutOfBoundsException
发出an 。
以上是 常见的下溢和上溢异常 的全部内容, 来源链接: utcz.com/qa/430252.html