2010-04-26 4 views
2

Je sais tout sur cette exception, lisez l'article msdn ici http://support.microsoft.com/kb/312629/EN-US/ mais je ne sais pas comment gérer cela quand mon patron ne veut pas que je jette faux pour la réponse .Fin.Comment gérer ThreadAbortException sans spécifier False pour Response.End

Voici ce que j'ai:

 else 
     { 
try 
{ 
    VoidlOrder(transactionID); 
} 
catch (Exception ex) 
{ 
    LogError(ex.ToString()); 
} 
finally 
{ 
    RedirectUser(sessionID,"showfmsg=1", true); 
} 
     } 

RedirectUser est juste une méthode utilitaire, nous courons qui passe en fin de compte pour le vrai resopnse.end de reponse.redirect param.

Alors, quelle autre option existe-t-il d'autre que de mettre false comme param? Il dit de l'attraper et de faire quelque chose ... ok faire quoi? Je ne vois pas d'autre solution que d'envoyer un faux dans cet appel à chaque fois parce que je ne peux pas passer cette exception .. Je l'obtiens à chaque fois.

MISE À JOUR

essayé cela, mais je reçois encore un ThreadAbortException dans la prise extérieure:

  else 
     { 
       try 
       { 

        VoidOrder(transactionID); 
       } 
       catch (Exception ex) 
       { 
        LogError(ex.ToString()); 
       } 
       finally 
       { 
        try 
        { 
        RedirectUserBackToCheckout(sessionID, "showfmsg=1", true); 
        } 
        catch (ThreadAbortException) 
        { 

        } 

       } 
     } 
    } 
    catch (Exception ex) 
    { 
     // some other logic 
    } 
+0

Que demandez-vous exactement? – SLaks

+0

S'il vous disait littéralement de faire quelque chose, alors je retournerais littéralement vers lui et lui demanderais ce qu'il voulait dire. Si ce n'est pas le posterchild pour une spécification incomplète, je ne sais pas ce que c'est. S'il vous a dit de faire quelque chose de spécifique, que vous a-t-il dit de faire? Est-ce que vous le faites? –

+0

Aucune idée de comment il veut gérer cela. Il a dit juste pour attraper le fil de discussion et le gérer en quelque sorte ... oui, ce n'est pas beaucoup d'aide en termes de direction. – PositiveGuy

Répondre

2

Votre question n'a pas de sens, mais vous êtes probablement pour

catch(ThreadAbortException) { Thread.ResetAbort(); } 

EDIT: Vous devez composer le Thread.ResetAbort(); dans votre bloc catch.

+0

pourquoi ça n'a pas de sens? – PositiveGuy

+0

Je ne veux pas simplement vérifier ThreadAbortExcetions. Le mettre dans ma prise comme ceci contournerait n'importe quel autre type d'exceptions. – PositiveGuy

+0

Votre question, il n'y en a pas. De quoi parlez-vous précisément? Comment éviter l'exception? Comment le gérer? –

Questions connexes