我怎么处理堆栈溢出异常在我发生的游戏中发生时,我玩尽可能的游戏plz答复?我该如何处理我的游戏中的堆栈溢出异常?
回答
try
{
//your work
}
catch(StackOverflowException ex)
{
// handle it
}
CLR?你的意思是JVM? :) – bzlm 2010-10-01 09:48:13
.WriteLine(或Java等价物)需要堆栈空间。这是否会工作100%?我相当怀疑它。 – 2010-10-01 09:49:48
@Lasse V. Karlsen @bzlm更新了 – 2010-10-01 09:55:33
嗯,说白了,你可能不应该试图手柄堆栈溢出异常。
在某些情况下,你不能响应堆栈溢出异常执行代码,因为这些代码需要堆栈空间,这是不可用的,因此双误。
相反,你应该改变的代码,从而完全避免它。
这可能意味着改变你的算法,一些其他的算法,或可能实现在自己的堆栈基于堆栈的递归并切换到一个循环来代替。
堆栈溢出是最经常涉及到递归调用,而不是GC。
GC会给你带来内存不足的异常。
public static void main(String args[])
{
try
{
LongRecursiveMethodOrSomethingLikeThat();
} catch(StackOverflowError t) {
// Generic catch// catch(Error e)
// anything: catch(Throwable t)
System.out.println("Error:"+t);
t.printStackTrace();
}
这是安全的吗?堆栈是否展开以便实际上在catch块中具有堆栈空间?如果不是,你怎么称呼任何东西? – 2010-10-01 10:29:12
@Lasse V. Karlsen:我明白你来自哪里。它不太可能在捕获报表中发挥作用。理想情况下,发生Stackflow时,应该让应用程序崩溃。 – 2010-10-01 11:11:36
请注意,我不知道:)我只是问,在.NET中,你不能假设你有任何调用的堆栈空间,但在Java中,例如,你可能会从堆栈中退出堆栈的异常返回到catch块,因此释放了足够的空间来执行代码。 – 2010-10-01 11:14:28
- 1. 堆栈溢出异常
- 2. 堆栈溢出异常
- 3. istream未处理的异常,堆栈溢出
- 4. 如何让我的堆栈溢出?
- 5. 之前堆栈溢出异常的main()
- 6. 堆栈溢出我猜insmod
- 7. OpenARK-SDK.exe中的0x00007FF74F27A526未处理的异常:0xC00000FD:堆栈溢出(参数:0x0000000000000001,0x000000EEC5803FD8)
- 8. C#WPF Window.ShowDialog堆栈溢出异常
- 9. 避免堆栈溢出异常
- 10. 调试C# - 堆栈溢出异常?
- 11. 我应该如何处理游戏开发中的延迟?
- 12. 工艺处理堆栈溢出
- 13. 调用堆栈上的异常处理堆栈帧的顺序
- 14. 如何处理异常异常java.lang.StackOverflowError:堆栈大小8MB
- 15. Java异常处理和堆栈跟踪
- 16. 我该如何抑制gcc中AddressSanitizer的堆栈缓冲区溢出
- 17. compojure web项目中的堆栈溢出异常
- 18. Rails 3.2中的堆栈溢出异常ActiveRecord
- 19. 快速排序中的堆栈溢出异常
- 20. LINQ to SQL中的堆栈溢出异常
- 21. 堆栈溢出中的SAML?
- 22. Jboss中的堆栈溢出
- 23. freertos中的堆栈溢出
- 24. MemoryError:python中的堆栈溢出
- 25. Prolog中的堆栈溢出
- 26. parse.com查询抛出单声道下的堆栈溢出异常
- 27. 堆栈溢出
- 28. 我被困在中间,webpart不显示。它显示堆栈溢出异常
- 29. 我该如何清理我的lua状态堆栈?
- 30. 我应该如何正确处理Python3中的异常
不要无限递归。 – bzlm 2010-10-01 09:47:35
我在我的代码中有错误如何让它停止? – 2010-10-01 09:52:05
@bzlm您的评论是否提及问题标题包含“堆栈溢出”这个短语的事实? ;) – 2010-10-01 15:10:21