Avatar billede Slettet bruger
04. juli 2005 - 09:34 Der er 3 kommentarer og
1 løsning

Deaktivere try/catch

Hej

Jeg har i mit C# projekt nogle try/catch blokke, som sørger for at exceptions bliver håndteret korrekt, når mit program kører.

Men under udvikling synes jeg ikke det er praktisk, at læse min egen brugervenlige fejlmeddelelses box.

At "forbindelsen til serveren ikke kan oprettes" fortæller jo ikke mig hvor undtagelsen opstår.

Findes der ikke en nem måde, at deaktivere try/catch blokke på i visual studio 2003? Således at jeg kan slå min egen fejlhåndtering fra under udvikling, men slå den til når programmet tages i brug af brugeren?

Eller skal jeg bare udkommentere alle mine try/catch statements hver gang, og så håbe at jeg husker at af-kommentere dem igen?
Avatar billede Spotgun Seniormester
04. juli 2005 - 10:21 #1
Jeg ved ikke om du kan deaktivere det, men en nogenlunde nem måde at slippe omkring det på, er ved at lave en konstant (useDebug) som du kan sætte til true eller false.

Og i stedet for at kalde en messagebox, kalder du så følgende metode med både den pæne fejlbesked og din avancerede fejlbesked (formentlig din exception message).

På den måde skal du kun rette noget et sted, hver gang du vil skifte mellem almindelig status og debug status.

private void showError(string niceMsg, string errorMsg)
{
    if(useDebug)
    {
        MessageBox.Show(niceMsg + "\n\n(" + errorMsg +")");
    }
    else
    {
        MessageBox.Show(niceMsg);
    }
}
Avatar billede lifo Nybegynder
04. juli 2005 - 10:45 #2
ja jeg ville gøre som spotgun siger
men ville ikke oprette en konstant
ville heller burge det spørge på #if DEBUG
private void showError(string niceMsg, string errorMsg)
{
    #if DEBUG
      MessageBox.Show(niceMsg + "\n\n(" + errorMsg +")");   
    #else
      MessageBox.Show(niceMsg);
    #endif
}

så skal du bare vælge debug i i VS så får du alt med og i release mode får du kun de nice beskeder
Avatar billede Syska Mester
04. juli 2005 - 21:38 #3
Ville også vælge lifo's for at få den kode som fylder mindst i sidste ende...

Der er jo også de forskellige Debug.WriteLine Trace.WriteLine under Diagnostics eller hvordan det nu staves... de er også meget gode under udviklingen.

( Synes altid jeg helt kan finde rundt i min VS om den laver Debug eller Release, men det er jo noget jeg må se på engang.... ) bruger måde 2003 og 2005

// ouT
Avatar billede tuxic Nybegynder
05. juli 2005 - 19:40 #4
Hvis du bruger VS.NET 2003 (sikkert også 2005) kan du gå til Debug -> Exceptions vælge Common Language Runtime Exceptions og Break into Debugger i "When the exception is thrown". ctrl+alt+e gør det samme.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester