Forse è sufficiente mantenere le cose come stanno, ma intercettando l'eccezione.

Vedi l'esempio fornito su MSDN per la classe.

Ciao!