There's really two ways to achieve this. The first way is that in early versions of C#, you could simply catch *all* exceptions and then throw the ones you don't want. For example :
try
{
//Do Work
} catch(Exception ex)
{
if(ex is NullReferenceException || ex is FormatException)
{
//Handle exception
}
else
{
throw; //Just throw if it's not for us.
}
}
It's not a bad option but maybe not the cleanest.
However starting in C# 6, you can use the "when" keyword to specify when you should catch the exception, for example :
try
{
//Do Work
}
catch (Exception ex) when (ex is NullReferenceException or FormatException)
{
//Handle exception
}
It's maybe a matter of preference but it saves you a big if/else statement and rethrowing all together.