2010-07-12 2 views
0

У меня это исключение, когда я сделал код, приведенный ниже.Как справиться с этим ThreadAbort Exception ..?

«Невозможно оценить выражение, потому что код оптимизирован, или собственный кадр находится поверх стека вызовов».

--code--

try 
{ 
    if (retVal == 0) 
    Response.Redirect("Success.aspx"); 
} 
catch(Exception error) 
{ 
    Response.Redirect("errorpage.aspx"); 
} 
finally{ 
} 

от поиска в сети я нашел, что это ошибка, и если его успех, то мы должны закончить ответ ... т.е. «Response.Redirect (» Success.aspx» , false); ".it работает нормально .. это хороший метод или есть какой-либо другой эффективный метод для обработки этого исключения, пожалуйста, помогите ....

ответ

4

Вы уверены, что это Исключение? Что это за исключение?

Похоже, вы использовали «Break» в отладчике, и он не может оценить часы или выражение, потому что он занят строкой кода или не управляемым вызовом.

Попробуйте нажать F10 или F11, чтобы перейти к следующей строке управляемого кода, а затем снова взглянуть на выражение.

Использование точки останова также должно работать.

Если это не решит проблему, отправьте комментарий, и я постараюсь ответить или быть более конкретным.


Это, вероятно, что вы видите:

Кроме того, Response.Redirect всегда будет бросать ThreadAbortException, смотрите здесь:

http://msdn.microsoft.com/en-us/library/a8wa7sdt(VS.80).aspx

Для обеспечения что больше не выполняется код, и следующий код, который будет запущен, находится в контексте генерации на следующей странице.

Вы могли бы сделать это вместо:

try 
{ 
    // code with Response.Redirect 
} 
catch (ThreadAbortException) 
{ 
    // ignore this exception, it is expected from Response.Redirect 
} 
catch (Exception ex) 
{ 
    // handle/log/redirect using ex 
} 

Надежда, что помогает!

+0

его исключение .. при отладке я получил это сообщение ... в противном случае он всегда перенаправлялся на страницу с ошибкой, – deepu

+0

См. Обновление: Response.Redirect всегда генерирует исключение (ThreadAbortException), хотя это не тот, который вы говорят, исправление должно по-прежнему работать. –

+0

спасибо, что работает отлично ... я только что сделал Response.Redirect («Success.aspx», false); на try, если returnvalue является suceess ... и он также работает хорошо .. это хороший метод. Это хороший метод, чтобы игнорировать исключение ..? – deepu

Смежные вопросы