The SystemException is a predefined exception class in C#. It is used to handle system related exceptions. It works as base class for system exception namespace. It has various child classes like: ValidationException, ArgumentException, ArithmeticException, DataException, StackOverflowException etc.
It consists of rich constructors, properties and methods that we have tabled below.
[SerializableAttribute] [ComVisibleAttribute(true)] public class SystemException : Exception
| Constructors | Description |
|---|---|
| SystemException() | It is used to initialize a new instance of the SystemException class. |
| SystemException(SerializationInfo,StreamingContext) | It is used to initialize a new instance of the SystemException class with serialized data. |
| SystemException(String) | It is used to initialize a new instance of the SystemException class with a specified error message. |
| SystemException(String,Exception) | It is used to initialize 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. |
| Property | Description |
|---|---|
| Data | It is used to get a collection of key/value pairs that provide additional user-defined information about the exception. |
| HelpLink | It is used to get or set a link to the help file associated with this exception. |
| HResult | It is used to get or set HRESULT, a coded numerical value that is assigned to a specific exception. |
| InnerException | It is used to get the Exception instance that caused the current exception. |
| Message | It is used to get a message that describes the current exception. |
| Source | It is used to get or set the name of the application that causes the error. |
| StackTrace | It is used to get a string representation of the immediate frames on the call stack. |
| TargetSite | It is used to get the method that throws the current exception. |
| Method | Description |
|---|---|
| Equals(Object) | It is used to check that the specified object is equal to the current object or not. |
| Finalize() | It is used to free resources and perform cleanup operations. |
| GetBaseException() | It is used to get root exception. |
| GetHashCode() | It is used to get hash code. |
| GetObjectData(SerializationInfo,StreamingContext) | It is used to get object data. |
| GetType() | It is used to get the runtime type of the current instance. |
| MemberwiseClone() | It is used to create a shallow copy of the current Object. |
| ToString() | It is used to create and return a string representation of the current exception. |
This class can be used to handle exception of subclasses. Here, in the following program, program throws an IndexOutOfRangeException that is subclass of SystemException class.
using System;
namespace CSharpProgram
{
class Program
{
static void Main(string[] args)
{
try
{
int[] arr = new int[5];
arr[10] = 25;
}
catch (SystemException e)
{
Console.WriteLine(e);
}
}
}
}