StackOverflowException Class (System)

Switch View :
ScriptFree
.NET Framework Class Library
StackOverflowException Class

The exception that is thrown when the execution stack overflows because it contains too many nested method calls. This class cannot be inherited.

Inheritance Hierarchy

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

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
Syntax

Visual Basic
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class StackOverflowException _
	Inherits SystemException
C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class StackOverflowException : SystemException
Visual C++
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class StackOverflowException sealed : public SystemException
F#
[<Sealed>]
[<SerializableAttribute>]
[<ComVisibleAttribute(true)>]
type StackOverflowException =  
    class
        inherit SystemException
    end

The StackOverflowException type exposes the following members.

Constructors

  Name Description
Public method Supported by the XNA Framework StackOverflowException() Initializes a new instance of the StackOverflowException class, setting the Message property of the new instance to a system-supplied message that describes the error, such as "The requested operation caused a stack overflow." This message takes into account the current system culture.
Public method Supported by the XNA Framework StackOverflowException(String) Initializes a new instance of the StackOverflowException class with a specified error message.
Public method Supported by the XNA Framework StackOverflowException(String, Exception) Initializes a new instance of the StackOverflowException class with a specified error message and a reference to the inner exception that is the cause of this exception.
Top
Properties

  Name Description
Public property Data Gets a collection of key/value pairs that provide additional user-defined information about the exception. (Inherited from Exception.)
Public property HelpLink Gets or sets a link to the help file associated with this exception. (Inherited from Exception.)
Protected property Supported by the XNA Framework HResult Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception. (Inherited from Exception.)
Public property Supported by the XNA Framework InnerException Gets the Exception instance that caused the current exception. (Inherited from Exception.)
Public property Supported by the XNA Framework Message Gets a message that describes the current exception. (Inherited from Exception.)
Public property Source Gets or sets the name of the application or the object that causes the error. (Inherited from Exception.)
Public property Supported by the XNA Framework StackTrace Gets a string representation of the immediate frames on the call stack. (Inherited from Exception.)
Public property TargetSite Gets the method that throws the current exception. (Inherited from Exception.)
Top
Methods

  Name Description
Public method Supported by the XNA Framework Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Supported by the XNA Framework Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Supported by the XNA Framework GetBaseException When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions. (Inherited from Exception.)
Public method Supported by the XNA Framework GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetObjectData When overridden in a derived class, sets the SerializationInfo with information about the exception. (Inherited from Exception.)
Public method Supported by the XNA Framework GetType Gets the runtime type of the current instance. (Inherited from Exception.)

In XNA Framework 3.0, this member is inherited from Object.GetType().
Protected method Supported by the XNA Framework MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Supported by the XNA Framework ToString Creates and returns a string representation of the current exception. (Inherited from Exception.)
Top
Events

  Name Description
Protected event SerializeObjectState Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception. (Inherited from Exception.)
Top
Remarks

StackOverflowException is thrown for execution stack overflow errors, typically in case of a very deep or unbounded recursion. The Localloc Microsoft intermediate language (MSIL) instruction throws StackOverflowException.

StackOverflowException uses the HRESULT COR_E_STACKOVERFLOW, which has the value 0x800703E9. For a list of initial property values for a StackOverflowException object, see the StackOverflowException constructors.

Note Note

The value of the inherited Data property is always null.

Version Considerations

In prior versions of the .NET Framework, your application could catch a StackOverflowException object (for example, to recover from unbounded recursion). However, that practice is currently discouraged because significant additional code is required to reliably catch a stack overflow exception and continue program execution.

Starting with the .NET Framework version 2.0, a StackOverflowException object cannot be caught by a try-catch block and the corresponding process is terminated by default. Consequently, users are advised to write their code to detect and prevent a stack overflow. For example, if your application depends on recursion, use a counter or a state condition to terminate the recursive loop. Note that an application that hosts the common language runtime (CLR) can specify that the CLR unload the application domain where the stack overflow exception occurs and let the corresponding process continue. For more information, see ICLRPolicyManager Interface and Hosting Overview.

Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition Platform Note: A thrown StackOverflowException cannot be caught by a try-catch block. Consequently, the exception causes the process to terminate immediately.

Version Information

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also

Reference

Other Resources