It's normal to get different types of exceptions in one try block. But how can you handle them? You should not use a general exception to do this. If you throw a general exception instead of throwing a specific exception, you might miss some important information about the exception. For this reason, the C# language introduced multiple catch blocks for a try block. You can specify one catch block that will be called for one type of exception, and you can create other catch blocks just after one-by-one with different exception types. When a specific exception is thrown, only that particular catch block will be executed if it has a dedicated catch block for that kind of exception. Let's look at an example:
using System;
class ManyCatchBlocks
{
public static void Main()
{
try
{
var a = 5;
var b = 0;
...