C#捕获堆栈溢出异常我得到了对引发堆栈溢出异常的Methode的递归调用。第一个调用被TRY CATCH块包围,但未捕获异常。堆栈溢出异常是否以一种特殊的方式运行?我能正确地捕捉/处理异常吗?注:如果相关:异常不会在主线程中引发。代码抛出异常的对象由Assembly.LoadFrom(.).CreateInstance(.)手动加载。
3 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
在以前版本的.NET Framework中,应用程序可以捕获StackOverflow异常对象(例如,从无限递归中恢复)。但是,目前不鼓励这种做法,因为要可靠地捕获堆栈溢出异常并继续执行程序,需要大量额外的代码。
从.NET Framework 2.0版本开始,尝试捕获块无法捕获StackOverflow异常对象,默认情况下相应的进程将终止。因此,建议用户编写代码以检测和防止堆栈溢出。例如,如果应用程序依赖于递归,则使用计数器或状态条件终止递归循环。注意,承载公共语言运行库(CLR)的应用程序可以指定CLR卸载发生堆栈溢出异常的应用程序域,并让相应的进程继续进行。有关更多信息,请参见ICLRPolicyManager接口和托管公共语言运行时。
- 3 回答
- 0 关注
- 1472 浏览
添加回答
举报
0/150
提交
取消