El comportamiento predeterminado en las aplicaciones .NET es salir cada vez que se produce una excepción no controlada. Cuando una excepción no se maneja, el programa se encuentra en un estado desconocido y posiblemente inestable. El hecho de que sucedió en un hilo de fondo no significa que el error no afectará el resto del programa. El curso más prudente para el tiempo de ejecución en esa situación es volcar el programa.
Puede consultar AppDomain.CurrentDomain.UnhandledException
, que le permitirá detectar excepciones no controladas y reaccionar en consecuencia. Una mejor solución es envolver su proceso de hilo con un try...catch
. Pero solo debe manejar esas excepciones que sabe cómo manejar. Hacer esto:
void MyThreadProc()
{
try
{
// ...
}
catch
{
// handle all exceptions
// This is a BAD idea
}
}
¿Es realmente una mala idea, ya que puede enmascarar excepciones que usted realmente desea que se propagan al programa principal.