An exception can be generated by one method and caught by another
using System;
class MainClass {
public static void Main() {
try {
genException();
}
catch (IndexOutOfRangeException) {
// catch the exception
Console.WriteLine("Index out-of-bounds!");
}
Console.WriteLine("After catch statement.");
}
public static void genException() {
int[] nums = new int[4];
Console.WriteLine("Before exception is generated.");
// Generate an index out-of-bounds exception.
for(int i=0; i < 10; i++) {
nums[i] = i;
Console.WriteLine("nums[{0}]: {1}", i, nums[i]);
}
Console.WriteLine("this won"t be displayed");
}
}
Before exception is generated.
nums[0]: 0
nums[1]: 1
nums[2]: 2
nums[3]: 3
Index out-of-bounds!
After catch statement.
System.Exception is the base exception class. All exceptions in .NET are derived from System.Exception.
using System;
public class Starter {
public static void Main() {
try {
int var1 = 5, var2 = 0;
var1 /= var2; // exception occurs
} catch (Exception except) {
if (except is SystemException) {
Console.WriteLine("Exception thrown by runtime");
} else {
Console.WriteLine("Exception thrown by application");
}
}
}
}