Основы на эти вопросы и ответы там, мне нравится спрашивать, что является правильным способом перенаправления.
По умолчанию с помощью Redirect (url, endResponse) вызывается ThreadAbortException, потому что вызывается с endResponse=true, который вызывает End(), и поэтому, если вы используете его внутри блока try/catch, это исключение показано там, и это можно считать ошибкой, но на самом деле пользователь пытается перенаправить на страницу, остановив оставшуюся часть обработки страницы.
Другими возможными способами является вызов Redirect(url, endResponse) с endResponse=false, следующий за HttpContext.Current.ApplicationInstance.CompleteRequest();. Используя это, вы не получите никаких исключений.
Итак, вопрос в том, что лучше использовать и почему.

