我试图在
java中获得一个溢出和下溢的异常,但无法得到任何漂亮的教程.具体我想学习
>他们是如何不同的?
>这些异常的子类是什么?
>在哪种情况下他们被抛出?
>哪些可以处理怎么办?
>与他们相关的最佳做法是什么?
任何链接到有用的教程将做
解决方法
好的,OP谈到想知道堆栈溢出和算术溢出以及它们相应的下溢.开始….
>当数字太大而不适合其值类型时,会发生算术溢出.例如,int保持-231和231-1之间的值,包括0和231.如果您的号码超过这些限制,则会发生溢出,并且数字“包围”.这些不会在Java中生成异常.
>当浮点数太小而不能很好地从零区分(数字的精度被截断)时,会发生算术下溢.在Java中,这些也不会引起异常.
>当您调用一个函数调用另一个函数,然后调用另一个函数,然后再调用另一个函数,并且函数调用栈太深时,会发生堆栈溢出.当这种情况发生时,您会收到一个StackOverflowError.
> Java中不会发生堆栈下溢.它的运行时系统应该防止这种事情发生.
要回答OP的其他问题(见注释),当您超出数组的边界时,会发出IndexOutOfBoundsException.