Hoe kan ik uitzonderingsdetails zien in debugger zonder variabele toe te wijzen aan uitzondering?

Ik wil uitzonderingsdetails zien in Visual Studio debugger zonder variabele toe te wijzen aan uitzondering. Momenteel moet ik zoiets schrijven:

try 
{
    //some code
}
catch (SecurityException ex)
{
   //some code or ever no any code 
}

Visual studio geeft een foutmelding dat de ex-variabele nooit wordt gebruikt, maar ik heb deze variabele nodig om uitzonderingsdetails te zien tijdens het debuggen.

UPDATE: ik weet hoe ik de VS-fout ‘variabele wordt nooit gebruikt’ kan onderdrukken, het probleem is om een ​​uitzondering te zien in het horloge zonder deze variabele.


$exception variabele door @VladimirFrolov of exception helper door @MarcGravell is een antwoord.


Antwoord 1, autoriteit 100%

Je kunt je uitzondering zien in de Locals-lijst of $exceptiongebruiken in de Watch list:

try
{
    // some code
}
catch (SecurityException)
{ // place breakpoint at this line
}

Antwoord 2, autoriteit 8%

Je hoeft niets te doen: plaats gewoon een breekpunt in de catch(of op een catchen stap eenmaal in het blok) en je zou een uitnodiging om de uitzonderingshelper te zien. Dit werkt voor naakte catchof voor typespecifieke catch(SecurityException)-blokken:

die je alles geeft:


Antwoord 3, autoriteit 6%

Op elk moment dat je op de uitzondering klikt, kun je het kijkvenster controleren en een variabele toevoegen: $exception.
Hierdoor kun je met alle metadata van de uitzondering werken.


Antwoord 4, autoriteit 4%

U kunt een functionaliteit van Visual Studio gebruiken.

Debug => Uitzonderingen => Vink “Common Language Runtime Exceptions” aan

Dat is het. Ik hoop dat het helpt.


Antwoord 5, autoriteit 2%

gebruik

catch (SecurityException /*without variable*/)
{/*break Point*/
   //some code or ever no any code 
}

of

catch /*without parameter*/
{/*break Point*/
   //some code or ever no any code 
}

maar ik denk dat je dit bedoelt

catch (SecurityException ex)
    {
       MessageBox.Show(ex.ToString()); //for Winforms
       Console.WriteLine(ex); //for console
    }

Antwoord 6

schrijf gewoon

catch
{//set breakpoint here
}

Antwoord 7

Om te voorkomen dat u de waarschuwing krijgt: “De variabele ‘ex’ is gedeclareerd maar nooit gebruikt” in een catch-statement, doet u het volgende:

try
 {
 }
 catch (Exception)
 {
   // set break point 
 }

Of gebruik System.Diagnostics.Debug.WriteLine()of Schakel tracering of foutopsporing in om een ​​trace-listenerte gebruiken.

Other episodes