2013-10-07 3 views
0

Я получаю исключение в response.redirect(), а Visual Studio не помогает мне с соответствующей информацией. Я получаю это только за ex:expression cannot be evaluated, message:subprocess annulled и _HResult:-2146233040. Я не получаю приветствия или что-то еще.Информация об исключении из ThreadAbortedException

Try 

     Dim unidadD As String = Request.QueryString("unity") 
     Dim categD As String = Request.QueryString("category") 
     Dim resulD As String = Request.QueryString("result") 
     Dim anioD As String = Request.QueryString("year") 
     Dim cicloD As String = Request.QueryString("cicle") 

     Response.Redirect("~/Evaluacion/Detalle_Resultados.aspx?op=1" & "&unity=" & unidadD & "&category=" & categD & "&result=" & resulD & "&cicle=" & cicloD & "&year=" & anioD) 


     Catch exa As System.Threading.ThreadAbortException 
      Dim link As String = exa.HelpLink 
     End Try 
+1

вызов 'exa.ToString()', чтобы получить все, что вам нужно выяснить свою проблему. – Will

+0

Похоже, вы только что набрали неправильное имя исключения в отладчике где-то (ex вместо exa) –

+0

Joel вы можете использовать любое имя varname –

ответ

1

Response.Redirect, как ожидается, бросить ThreadAbortedException. Просто переместите Response.Redirect из блока try/catch.

Другой вариант заключается в использовании:

Response.Redirect(url, False) 

будет переадресован без завершения текущего запроса. Вы можете позже позвонить Application.CompleteRequest.

Другой альтернативой было бы

Try 
    Response.Redirect(url) 
Catch tax as ThreadAbortedException 
    ' Do nothing, as this is an expected exception 
    ' No need to rethrow, as this exception is automatically re-thrown 
End Try 
+0

Хорошо, не нужно ли добавлять предложение response.redirect в блок try/catch ?, al al. поместите каждый из них в –

+0

Или используйте 'Response.Redirect (url, False)', или вы можете использовать 'Catch tax As ThreadAbortException',' 'Do nothing',' End Try' –

1

expected Это поведение, как обходной путь просто передать false в Response.Redirect, например,

Response.Redirect("...", false); 

Или, как уже было предложено, чтобы избавиться от Try...Catch - не совсем уверен, что вы ожидаете, чтобы сделать с ThreadAbortException все равно ...

+0

Я добавляю это исключение, пытаясь получить больше информации после того, как общее исключение не предоставит достаточной информации. Существует ли список, почему возникают некоторые исключения? –

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