Esta documentación está archivada y no tiene mantenimiento.

StackOverflowException (Clase)

Excepción que se produce cuando la pila de ejecución se desborda debido a que contiene demasiadas llamadas a métodos anidadas. No se puede heredar esta clase.

Espacio de nombres: System
Ensamblado: mscorlib (en mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class StackOverflowException : SystemException
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class StackOverflowException extends SystemException
SerializableAttribute 
ComVisibleAttribute(true) 
public final class StackOverflowException extends SystemException

Se produce StackOverflowException para los errores de desbordamiento de la pila de ejecución, normalmente en caso de recursividad muy profunda o sin enlazar. La instrucción máquina del Lenguaje intermedio de Microsoft (MSIL) Localloc produce StackOverflowException.

StackOverflowException utiliza HRESULT COR_E_STACKOVERFLOW, que tiene el valor 0x800703E9. Para obtener una lista con los valores de propiedad iniciales de un objeto StackOverflowException, vea los constructores StackOverflowException.

NotaNota

El valor de esta propiedad Data heredada siempre es referencia de objeto null (Nothing en Visual Basic).

Consideraciones de versión

En las versiones anteriores de .NET Framework, la aplicación puede detectar un objeto StackOverflowException (por ejemplo, para recuperarse de una recursividad ilimitada) . Sin embargo, en la actualidad se recomienda no utilizar dicha práctica puesto que es necesaria una importante cantidad de código adicional para detectar con fiabilidad una excepción de desbordamiento de pila y continuar con la ejecución del programa.

A partir de la versión 2.0 de .NET Framework, no es posible detectar un objeto StackOverflowException mediante un bloque try-catch y el proceso correspondiente se finaliza de manera predeterminada. Por consiguiente, se aconseja que los usuarios escriban su código para detectar y evitar un desbordamiento de pila. Por ejemplo, si la aplicación depende de la recursividad, utilice un contador o una condición de estado para terminar el bucle recursivo. Tenga en cuenta que una aplicación que aloja Common Language Runtime (CLR) puede especificar que CLR descargue el dominio de aplicación cuando se produzca una excepción de desbordamiento de pila y el proceso correspondiente pueda continuar. Para obtener más información, vea ICLRPolicyManager y Alojar Common Language Runtime.

Nota de la plataforma Windows 95, Windows 98, Windows 98 segunda edición, Windows Millennium: Un bloque try-catch no puede detectar una excepción StackOverflowException iniciada. Por tanto, la excepción hace que el proceso finalice inmediatamente.

System.Object
   System.Exception
     System.SystemException
      System.StackOverflowException

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar: