[Serializable] |
ctor #1 | Overloaded:.ctor() Default constructor. This constructor is called by derived class constructors to initialize state in this type.Initializes a new instance of the COMException class with default values. |
ctor #2 | Overloaded:.ctor(string message) Initializes a new instance of COMException with a specified message. |
ctor #4 | Overloaded:.ctor(string message, Exception inner) Initializes a new instance of the COMException class with a specified error message and a reference to the inner exception that is the cause of this exception. |
ctor #5 | Overloaded:.ctor(string message, int errorCode) Initializes a new instance of COMException with a specified message and error code. |
ErrorCode (inherited from System.Runtime.InteropServices.ExternalException) |
Read-only See base class member description: System.Runtime.InteropServices.ExternalException.ErrorCode Gets the HRESULT of the error. |
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 | Overridden: Converts the contents of the exception to a string. |
ctor #3 | Overloaded:.ctor(SerializationInfo info, StreamingContext context) Initializes a new instance of the COMException class from serialization 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:
public COMException(); |
Property | Value |
---|---|
Exception.InnerException | null . |
Exception.Message | A localized error message string. |
public COMException( |
message
Property | Value |
---|---|
Exception.InnerException | null . |
Exception.Message |
protected COMException( |
info
context
Exception Type | Condition |
---|---|
ArgumentNullException | info is null. |
COMException inherits from ExternalException.
message
inner
The following table shows the initial property values for an instance of COMException.
Property | Value |
---|---|
Exception.InnerException | The inner exception reference. |
Exception.Message | The error message string. |
message
errorCode
COMException inherits from ExternalException. This constructor sets the properties of the Exception object as shown in the following table.
Property | Value |
---|---|
Exception.InnerException | null . |
Exception.Message |
public virtual int ErrorCode {get;}
|
public virtual string HelpLink {get; set;}
|
"file:///C:/Applications/Bazzal/help.html#ErrorNum42"
protected int HResult {get; set;}
|
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.
using System; public class MyAppException:ApplicationException { public MyAppException (String message) : base (message) {} public MyAppException (String message, Exception inner) : base(message,inner) {} } public class ExceptExample { public void ThrowInner () { throw new MyAppException("ExceptExample inner exception"); } public void CatchInner() { try { this.ThrowInner(); } catch (Exception e) { throw new MyAppException("Error caused by trying ThrowInner.",e); } } } public class Test { public static void Main() { ExceptExample testInstance = new ExceptExample(); try { testInstance.CatchInner(); } catch(Exception e) { Console.WriteLine ("In Main catch block. Caught: {0}", e.Message); Console.WriteLine ("Inner Exception is {0}",e.InnerException); } } }
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()
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.
The error message should be localized.
public virtual string Source {get; set;}
|
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.
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.
public MethodBase TargetSite {get;}
|
~COMException(); |
public virtual Exception GetBaseException(); |
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.
public virtual int GetHashCode(); |
public virtual void GetObjectData( |
info
context
Exception Type | Condition |
---|---|
ArgumentNullException | The info parameter is a null reference (not set or empty). |
public Type GetType(); |
protected object MemberwiseClone(); |
public override string ToString(); |