.net异常之 StackOverflowException(堆栈溢出)

来源:互联网 发布:台湾统一时间 知乎 编辑:程序博客网 时间:2024/06/02 02:26

StackOverflowException异常

在MSDN中的说明是: 因执行堆栈溢出错误引发,通常在存在非常深的递归或无界递归时发生。从 .NET Framework 2.0 版开始,将无法通过 try-catch 块捕获 StackOverflowException 对象,并且默认情况下将终止相应的进程。

 

在程序中很容易这种错误,如下例:

 

// 属性

private int m;

public int M

{

   get {return M;}

   set {m = value;}
}

 

当程序中应用此属性时,获取器(get)就会导致此问题。无限递归获取m的值。

这个导致此异常最常见的一个原因。

 

异常总结:

1.StackOverflowException异常无法通过try-catch 捕获的,一旦出现,会立即接受应用程序。

2. 定义属性时应注意。