A 10 version also exists. A 9.2 version also exists.
If the Exception.InnerException property of the current exception is a null reference (not set or empty), this property returns the current exception. Remarks A chain of exceptions consists of a set of exceptions such that each exception in the chain was thrown as a direct result of the exception referenced in its InnerException property. A few weeks ago, John Gruber posted Quit Confirmation for Safari on MacOS.I was inspired to make a few changes to Mr. Gruber's script and add a couple more. Check out my AppleScripts GitHub repo for quit confirmation on Safari and Chrome as well as a tab close confirmation on Safari. View VB.NET questions; View SQL questions. Almost every developer face that problem of having to walk the InnerException chain to find a specific piece of. If you read through this article, you'll notice that all the samples I used were in C#. That's because C# is my preferred language, and because VB.NET has a few guidelines of its own. Emulate C# 'using' statement. Unfortunately, VB.NET still doesn't have the using statement. Whidbey will have it, but until it's released, everytime you.
Using exceptions
Try, Catch, and Finally construct
[C#]
[VB.NET]
[C#]
[VB.NET]
Code without exception handling
Errors from COM components
[C#]
[VB.NET]
Throwing errors and the exception hierarchy
[C#]
[VB.NET]
[C#]
[VB.NET]
[C#]
[VB.NET]
Writing your error handler
System.SystemException Class
Assembly: Mscorlib.dllNamespace: System
- Summary
- Defines the base class for predefined exceptions in the System namespace.
[Serializable] |
SystemException does not provide information as to the cause of the Exception. In most scenarios, instances of this class should not be thrown. In cases where this class is instantiated, a human-readable message describing the error should be passed to the constructor .
SystemException is thrown by the common language runtime when errors occur that are nonfatal and recoverable by user programs. These errors result from failed runtime check (such as an array out-of-bound error), and can occur during the execution of any method. SystemException adds no new functionality to Exception.
SystemException uses the HRESULT COR_E_SYSTEM, that has the value 0x80131501.
For a list of initial property values for an instance of SystemException, see the SystemException.#ctor constructors.
For more information on exceptions defined by applications, see ApplicationException.
See also:- System Namespace | Exception | MSDN: handlingthrowingexceptions
System.SystemException Member List:
ctor #1 | Overloaded:.ctor() Default constructor. This constructor is called by derived class constructors to initialize state in this type. |
ctor #2 | Overloaded:.ctor(string message) Initializes a new instance of the SystemException class with a specified error message. |
ctor #4 | Overloaded:.ctor(string message, Exception innerException) Initializes a new instance of the SystemException class with a specified error message and a reference to the inner exception that is the cause of this exception. |
HelpLink (inherited from System.Exception) | Read-write See base class member description: System.Exception.HelpLink Gets or sets a link to the help file associated with this exception. |
InnerException (inherited from System.Exception) | Read-only See base class member description: System.Exception.InnerException Gets the Exception instance that caused the current exception. |
Message (inherited from System.Exception) | Read-only See base class member description: System.Exception.Message Gets a message that describes the current exception. |
Source (inherited from System.Exception) | Read-write See base class member description: System.Exception.Source Gets or sets the name of the application or the object that causes the error. |
StackTrace (inherited from System.Exception) | Read-only See base class member description: System.Exception.StackTrace Gets a string representation of the frames on the call stack at the time the current exception was thrown. |
TargetSite (inherited from System.Exception) | Read-only See base class member description: System.Exception.TargetSite Gets the method that throws the current exception. |
Equals (inherited from System.Object) | See base class member description: System.Object.Equals Derived from System.Object, the primary base class for all objects. |
GetBaseException (inherited from System.Exception) | See base class member description: System.Exception.GetBaseException When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions. |
GetHashCode (inherited from System.Object) | See base class member description: System.Object.GetHashCode Derived from System.Object, the primary base class for all objects. |
GetObjectData (inherited from System.Exception) | See base class member description: System.Exception.GetObjectData When overridden in a derived class, sets the SerializationInfo with information about the exception. |
GetType (inherited from System.Object) | See base class member description: System.Object.GetType Derived from System.Object, the primary base class for all objects. |
ToString (inherited from System.Exception) | See base class member description: System.Exception.ToString Creates and returns a string representation of the current exception. |
ctor #3 | Overloaded:.ctor(SerializationInfo info, StreamingContext context) Initializes a new instance of the SystemException class with serialized data. |
HResult (inherited from System.Exception) | Read-write See base class member description: System.Exception.HResult Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception. |
Finalize (inherited from System.Object) | See base class member description: System.Object.Finalize Derived from System.Object, the primary base class for all objects. |
MemberwiseClone (inherited from System.Object) | See base class member description: System.Object.MemberwiseClone Derived from System.Object, the primary base class for all objects. |
Hierarchy:
- System.SystemException
System.SystemException Member Details
Overloaded- Summary
- Initializes a new instance of the SystemException class.
- Default constructor. This constructor is called by derived class constructors to initialize state in this type.
public SystemException(); |
The following table shows the initial property values for an instance of SystemException.
Property | Value |
---|---|
Exception.InnerException | A null reference ( not set or empty is Visual Basic). |
Exception.Message | The localized error message string. |
Return to top
Overloaded- Summary
- Initializes a new instance of the SystemException class with a specified error message.
public SystemException( |
message
- The message that describes the error.
The following table shows the initial property values for an instance of SystemException.
Property | Value |
---|---|
Exception.InnerException | A null reference ( not set or empty is Visual Basic). |
Exception.Message | The error message string. |
Return to top
Overloaded- Summary
- Initializes a new instance of the SystemException class with serialized data.
protected SystemException( |
info
- The object that holds the serialized object data.
context
- The contextual information about the source or destination.
- This constructor is called during deserialization to reconstitute the exception object transmitted over a stream. For more information, see the conceptual topic at MSDN: serialization.
MSDN: serialization
Return to top
Overloaded- Summary
- Initializes a new instance of the SystemException class with a specified error message and a reference to the inner exception that is the cause of this exception.
public SystemException( |
message
- The error message that explains the reason for the exception.
innerException
- The exception that is the cause of the current exception. If the innerException parameter is not a null reference (not set or empty), the current exception is raised in a catch block that handles the inner exception.
The following table shows the initial property values for an instance of SystemException.
Property | Value |
---|---|
Exception.InnerException | The inner exception reference. |
Exception.Message | The error message string. |
Exception | MSDN: handlingthrowingexceptions
Return to top
Property: (read-write)- Inherited
See base class member description: System.Exception.HelpLink
- Summary
- Gets or sets a link to the help file associated with this exception.
public virtual string HelpLink {get; set;} |
'file:///C:/Applications/Bazzal/help.html#ErrorNum42'
Return to top
Property: (read-write)- Inherited
See base class member description: System.Exception.HResult
- Summary
- Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.
protected int HResult {get; set;} |
- HRESULT is a 32-bit value, divided into three different fields: a severity code, a facility code, and an error code. The severity code indicates whether the return value represents information, warning, or error. The facility code identifies the area of the system responsible for the error. The error code is a unique number that is assigned to represent the exception. Each exception is mapped to a distinct HRESULT. When managed code throws an exception, the runtime passes the HRESULT to the COM client. When unmanaged code returns an error, the HRESULT is converted to an exception, which is then thrown by the runtime.
Return to top
Property: (read-only)- Inherited
See base class member description: System.Exception.InnerException
- Summary
- Gets the Exception instance that caused the current exception.
public Exception InnerException {get;} |
Use the InnerException property to obtain the set of exceptions that led to the current exception.
You can create a new exception that catches an earlier exception. The code that handles the second exception can make use of the additional information from the earlier exception to handle the error more appropriately.
Suppose that there is a function that reads a file and formats the data from that file. In this example, as the code tries to read the file, an IOException is thrown. The function catches the IOException and throws a FileNotFoundException. The IOException could be saved in the Exception.InnerException property of the FileNotFoundException, enabling the code that catches the FileNotFoundException to examine what causes the initial error.
The Exception.InnerException property, which holds a reference to the inner exception, is set upon initialization of the exception object.
Example The following example demonstrates throwing and catching an exception that references an inner exception.This code has the following output:
In Main catch block. Caught: Error caused by trying ThrowInner. Inner Exception is MyAppException: ExceptExample inner exception at ExceptExample.ThrowInner() at ExceptExample.CatchInner()
Return to top
Property: (read-only)- Inherited
See base class member description: System.Exception.Message
- Summary
- Gets a message that describes the current exception.
public virtual string Message {get;} |
The Message property is set only when creating an Exception. If no message was supplied to the constructor for the current instance, the system supplies a default message that is formatted using the current system culture.
Notes to inheritors: The Message property is overridden in classes that require control over message content or format. Application code typically accesses this property when it needs to display information about an exception that has been caught.
The error message should be localized.
Return to top
Property: (read-write)- Inherited
See base class member description: System.Exception.Source
- Summary
- Gets or sets the name of the application or the object that causes the error.
public virtual string Source {get; set;} |
- If Exception.Source is not set, the name of the assembly where the exception originated is returned.
Return to top
Property: (read-only)- Inherited
See base class member description: System.Exception.StackTrace
- Summary
- Gets a string representation of the frames on the call stack at the time the current exception was thrown.
public virtual string StackTrace {get;} |
StackTrace may not report as many method calls as expected, due to code transformations, such as inlining, that occur during optimization.
Notes to inheritors: The StackTrace property is overridden in classes that require control over the stack trace content or format.
By default, the stack trace is captured immediately before an exception object is thrown. Use Environment.StackTrace to get stack trace information when no exception is being thrown.
See also:Environment.StackTrace
Return to top
Property: (read-only)- Inherited
See base class member description: System.Exception.TargetSite
- Summary
- Gets the method that throws the current exception.
public MethodBase TargetSite {get;} |
- If the method that throws this exception is not available and the stack trace is not a null reference (not set or empty), Exception.TargetSite obtains the method from the stack trace. If the stack trace is a null reference , Exception.TargetSite also returns a null reference.
Return to top
Method: (objectobj
)
- Inherited
See base class member description: System.Object.Equals
public virtual bool Equals( |
For more information on members inherited from System.Object click on the link above.
Return to top
Method: ()- Inherited
See base class member description: System.Object.Finalize
~SystemException(); |
For more information on members inherited from System.Object click on the link above.
Return to top
Method: ()- Inherited
See base class member description: System.Exception.GetBaseException
- Summary
- When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.
public virtual Exception GetBaseException(); |
- Return Value:
- The first exception thrown in a chain of exceptions. If the Exception.InnerException property of the current exception is a null reference (not set or empty), this property returns the current exception.
For all exceptions in a chain of exceptions, the GetBaseException method must return the same object (the base exception).
Use the GetBaseException method when you want to find the root cause of an exception but do not need information about exceptions that may have occurred between the current exception and the first exception.
Notes to inheritors: The GetBaseException method is overridden in classes that require control over the exception content or format.
Return to top
Method: ()- Inherited
See base class member description: System.Object.GetHashCode
public virtual int GetHashCode(); |
For more information on members inherited from System.Object click on the link above.
Return to top
Method: (SerializationInfoinfo,
StreamingContextcontext
)
- Inherited
See base class member description: System.Exception.GetObjectData
- Summary
- When overridden in a derived class, sets the SerializationInfo with information about the exception.
public virtual void GetObjectData( |
info
- The SerializationInfo that holds the serialized object data about the exception being thrown.
context
- The StreamingContext that contains contextual information about the source or destination.
Exception Type | Condition |
---|---|
ArgumentNullException | The info parameter is a null reference (not set or empty). |
- Implements:
- ISerializable.GetObjectData
- GetObjectData sets a SerializationInfo with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo transmitted over the stream.
SerializationInfo | StreamingContext
Return to top
Method: ()- Inherited
See base class member description: System.Object.GetType
public Type GetType(); |
For more information on members inherited from System.Object click on the link above.
Return to top
Method: ()- Inherited
See base class member description: System.Object.MemberwiseClone
protected object MemberwiseClone(); |
For more information on members inherited from System.Object click on the link above.
Return to top
Method: ()- Inherited
See base class member description: System.Exception.ToString
- Summary
- Creates and returns a string representation of the current exception.
public override string ToString(); |
- Return Value:
- A string representation of the current exception.
The default implementation of Exception.ToString obtains the name of the class that threw the current exception, the message, the result of calling ToString on the inner exception, and the result of calling Environment.StackTrace. If any of these members is a null reference (not set or empty), its value is not included in the returned string.
If there is no error message or if it is an empty string ('), then no error message is returned. The name of the inner exception and the stack trace are returned only if they are not a null reference.
This method overrides Object.ToString.
Notes to inheritors: It is recommended, but not required, that ToString be overridden to return information about members declared in the derived class. For example, the ArgumentException class implements ToString so that it returns the value of the ParamName property, if that value is not a null reference.Example
Vb.net Ex.innerexception
The following example causes an exception and displays the result of calling ToString on that exception.This code has the following output:
Error: System.ArgumentException: Object must be of type String. at System.String.CompareTo(Object value) at ArgExceptionExample.Main()