I have some code like this:
try
{
doStuff();
}
catch(SpecificException)
{
if(e.Message == interestingMessage)
doOtherStuff();
else
throw;
}
catch(Exception e)
{
doSomethingElse();
}
When the first catch block rethrows its exception, will it be caught by the second catch block?
No, if you rethrow the exception you do it to the method caller.
The if inside
SpecificExceptioncatch would indicates that you need to split that exception into (at least) 2 different types.