Supongo que está utilizando WCF, ya que su pregunta está etiquetada con él. Una buena práctica en el manejo de excepciones con WFC no es permitir que las excepciones se propaguen por el cable a su consumidor, sino que en su lugar arrojen FaultExceptions significativas.
Siempre debe probar ... atrapar bloques en su operación si existe la posibilidad de que se genere una excepción. Si permite que se active la excepción bruta, solo pueden surgir dos escenarios: si ha configurado su servicio para permitir detalles de excepción en fallas, expondrá las partes internas de su servicio que se abren por violaciones de seguridad. O no tiene esto configurado en su servicio y el consumidor recibe un mensaje muy genérico que indica que algo salió mal, lo cual no es muy útil para ellos o para el equipo de soporte.
Lo que debe hacer es declarar una o más excepciones de falla, dependiendo de los mensajes que desea que el usuario reciba de su operación, decorarlos como FaultContracts en su declaración de operación. Entonces puedes intentar ... atrapar excepciones específicas y arrojar fallas específicas. También puedes intentarlo ... atrapar esa excepción de capturas y lanzar una falla muy general.
La clave aquí, no es revelar demasiada información de lo que está sucediendo con su operación internamente, ¡especialmente los restos de la pila!
El error es solo otro contrato de datos, por lo que se declara en su WSDL. Esto significa que su consumidor puede detectar el error específicamente y puede reaccionar ante fallas producidas por su operación como si fuera una excepción lanzada desde su código.
Espero que esto ayude.
Joe.