If I’m writing a class library, and at some point in that library I have code to catch an exception and deal with it, then I don’t want anyone using my library to know that it even happened – it should be invisible from the outside world.
However, if they have “Catch Thrown Exceptions” turned on in Visual Studio (as opposed to “Catch User Unhandled Exceptions”) then the exception will be visible to them.
Is there any way to avoid this?
The only way you can pull this off is if you put a [DebuggerHidden] attribute on the method that may throw the exception. Like others have pointed out, better to avoid the exception altogether, but this attribute will accomplish what you want.