所以我犯了一个愚蠢的错误,我打电话给myControl.Controls.Add(myControl);.很容易。有趣的是,这会导致IIS崩溃并在实际框架中抛出异常。我甚至没有打破并让我调试,它只是崩溃了。
看起来.NET框架应该比它更好地处理。还是应该呢?这样的预期行为会出现这样的错误,还是调试器可以更优雅地处理它?</ p>
答案 0 :(得分:4)
这是记录在案的行为 - 请参阅documentation at MSDN
以下是相关引用:
从.NET Framework 2.0版开始,发生StackOverflowException 对象不能被try-catch块和相应的块捕获 进程默认终止。
修改强>
从调试的角度来看,显然没有堆栈跟踪,如果问题是可重现的,那么相关的代码遍历(或在实际异常发生之前进行调试)可能会指出问题。另一种方法是使用IIS Debug Diagnostics tool并获取错误详细信息和崩溃转储。
请参阅SO answer,这似乎表明了类似的方法。