I get this question quite frequently, "I know how to break on all CLR exceptions, but how do I break on a specific exception, e.g. I want to see only Sql Exceptions?"
It is actually quite easy to do in WinDbg using the soe (StopOnException) command found in sos.dll
StopOnException [-derived] [-create | -create2]
<Exception> <Pseudo-register number>
Causes the debugger to stop when the specified exception is thrown,
but to continue running when other exceptions are thrown.
The -derived option catches the specified exception and every
exception that derives from the specified exception.
So after you load SOS (Check Windbg QuickStart guide for instructions on how to do that) you need to run the following:
0:052> !soe -Create System.Data.SqlClient.SqlException
(234c.1b28): CLR exception - code e0434352 (first chance)
CLR exception type: System.Net.WebException
"The remote server returned an error: (304) Not Modified."
(234c.1cd8): CLR exception - code e0434352 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
000007fe`fdb5cacd 4881c4c8000000 add rsp,0C8h
You will notice that the debugger is skipping all exceptions and breaking only on the exception type you are interested in.