Если вам нужно остановить распространение ThreadAbortException
дальше вверх по стеку вызовов, вы можете позвонить Thread.ResetAbort
.Поэтому попробуйте что-то вроде:
try
{
// some code
}
catch (ThreadAbortException ex)
{
// do some logging
Thread.ResetAbort();
}
Что касается «правильного» - это зависит от вашего сценария использования.Как правило, я бы с осторожностью относился к их отлову, если только вы не понимаете, почему он был поднят.В сущности, это «остановитесь сейчас, быстро и отбросьте то, что вы делаете» .Сброс и дальнейшую обработку следует выполнять с осторожностью.