日期:2014-05-20  浏览次数:20736 次

一个有挑战性的错误,我们几个人都没能解决。关于StackOverflowError
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at CannyEdgeDetector.follow(CannyEdgeDetector.java:276)
at CannyEdgeDetector.follow(CannyEdgeDetector.java:276)
at CannyEdgeDetector.follow(CannyEdgeDetector.java:276)
at CannyEdgeDetector.follow(CannyEdgeDetector.java:276)
at CannyEdgeDetector.follow(CannyEdgeDetector.java:276)

如何避免这种错误呢??

------解决方案--------------------
你的算法或者数据结构有问题吧?仔细检查下
------解决方案--------------------
递归得太深了
------解决方案--------------------
2楼已经回答完了,去看看CannyEdgeDetector.follow这个方法的出口吧。
------解决方案--------------------
CannyEdgeDetector.follow这个方法肯定是死循环!
就如2楼所说的,你递归有问题!好好检查下吧!
------解决方案--------------------
不太懂。。。眩晕中!!!~~~
------解决方案--------------------
。。。
------解决方案--------------------
我想应该是 函数嵌套 层数 太多
临时变量 过多,导致stack 溢出。
------解决方案--------------------
stack内存居然还有溢出的时候,没见过。。。
------解决方案--------------------
stack溢出 那应该是你方法有问题。
举个例子比如你在构造函数中构造自己 就会抛stack溢出。
------解决方案--------------------
首先看看自己的程序里面是否用了递归调用,特别是隐性的递归调用都有可能产生这个问题。
在继承的代码中容易出现这个问题。
另外,lz最好把有问题的那个部分的代码片段公布出来,单纯一个描述很难说得清楚,只能定性描述。
------解决方案--------------------
int[] n = new int[0xFFFFFFFF];
会出现同样的问题