The default behavior is for exceptions to appear as messages in Mathematica. To override this behavior (e.g., to temporarily silence messages from exceptions), assign a value to $NETExceptionHandler.
The value of $NETExceptionHandler is treated as a function that will be passed 3 arguments:
symbol associated with the message
usually the symbol NET
typically "netexceptn" or "netpexceptn"
a descriptive string associated with the exception
The tag "netexceptn" generally is used for a typical exception, while the tag "netpexceptn" is used for exceptions generated by a manual return, where the exception occurs after the function has sent its result back to Mathematica.
You can use GetNETException in a handler function to obtain the .NET exception object manually.
Typically, $NETExceptionHandler is assigned in a Block.