在Java中尝试/捕获堆栈溢出?

ste*_*eos 20 java stack-overflow

你能尝试/捕获java中的堆栈溢出异常吗?它似乎在抛出自己的方式.当我的程序溢出时,我想"惩罚"那个价值.

Thi*_*ilo 29

似乎工作:

public class Test {

    public static void main(String[] argv){
        try{
            main(null);
        }
        catch(StackOverflowError e){
            System.err.println("ouch!");
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

  • @stereos你不是想抓住'例外',不是吗?`Error`直接扩展`Throwable`,而不是'Exception`. (10认同)
  • 啊,我正在尝试一个通用的例外。谢谢! (3认同)

Mic*_*yan 9

如果您正在获得堆栈溢出,则可能尝试无限递归或严重滥用函数调用.也许你可能会考虑迭代一些程序,而不是递归或仔细检查你的递归​​过程中是否有正确的基本情况.捕获堆栈溢出异常是一个坏主意; 你正在治疗症状而没有解决根本原因.


小智 5

你必须捕获错误,而不是异常