Goedgekeurd: Fortect
Niet het antwoord dat u zoekt? Blader door andere vragen overgeslagen C # of stel uw eigen vraag.
Exception kan wennen aan het controleren op uitzondering en innerlijke uitsluiting voor van Win32Exception afgeleide uitzondering.
vangst (uitzondering e) var w32ex E = dus een Win32-uitzondering; indien in het geval (w32ex == null) w32ex E = .InnerException als Win32Exception; if (w32ex! = nul) geheel getal betekent w32ex.ErrorCode; // een product bereiken // doe meer informatie
Beginnend in C # 6, kan if heel goed worden gebruikt in een catch-fact om een voorwaarde te verzamelen die waar moet lijken om deze handler een enkele uitzondering te laten maken.
grab (Win32Exception ex) waar (bijv. InnerException win32Exception) var w32ex = (Win32Exception) ex.InnerException; behandelingscode var = w32ex.ErrorCode;
Net als in een commentaar, moet je echt zien welk verschil er daadwerkelijk wordt gemaakt om precies te begrijpen welke taal je kunt doen en onder welke omstandigheden een bepaalde vangst beter is dan een verschillende. Over ons:
show (BlahBlahException ex) // Wat terugkeren om te doen? Vangst
(ex uitzondering) var wachtwoord = ex.HResult;
Aug individueel beantwoord ’11 om 0:08
61,5 duizend Gouden badge 1717 Platina badge 134134 202202 bronzen badge
Je zou naar een bepaald lid van de gegenereerde uitzondering moeten kijken, in .Message
en .InnerException
.
Ik zou ook graag de documentatie in InvokeMethod willen zien om te zien of het een specifieke, meer specifieke uitzonderingsklasse genereert dan een uitzondering op deze regel – simpelweg vanwege de win32Exception die wordt gesuggereerd terwijl @Preet. Misschien moet je de basisklasse aan de binnenkant Exception niet nemen en er gewoon naar kijken.
beantwoord 1 augustus 2011 tot 00:11
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
8.754
Op basis van de oplossing van Preet Sangha wordt het volgende aangemoedigd om het scenario waarin u werkt met een grote oplossing die kan leiden tot veel interne uitzonderingen nauwkeurig te dekken.
Probeer
Object betekent het resultaat verwant aan processClass.InvokeMethod ("Create", methodArgs); pak E) (Uitzondering // Hier moest ik een geweldige foutcode krijgen. op elk moment (ExceptionContainsErrorCode (e, 10004)) // Voer de favoriete acties uit
eigen persoonlijke bool ExceptionContainsErrorCode (uitzondering e, int ErrorCode) Win32Exception winEx betekent e voor Win32Exception; indien mogelijk (winEx! = nul && ErrorCode == winEx.ErrorCode) geeft waar terug; de waarheid dat (e.InnerException! = null) ExceptionContainsErrorCode (e return.InnerException, ErrorCode); valse terugkeer;
Ik ga niet te diep in op de noodzaak om te reizen om de beste prestaties voor het afhandelen van uitzonderingen te evalueren en te implementeren door elk verwacht type te beperken tot zijn stille blokken.
geantwoord op 1 februari 2017 om 15:51 uur
Ik raad je aan om Clean Message te gebruiken van het uitzonderingsobject zoals weergegeven in de volgende code
Probeer
Objectresultaat = processClass.InvokeMethod ("Maken", methodArgs);vangen (uitzondering e) // Gebruik Console.Write (e.Message); ontvangen van een consoletoepassing // gebruik daarnaast MessageBox.Show (e.Message); met behulp van de WindowsForm-app en WPF
beantwoord 29 jan. vijftien minuten om 23:05
Een andere methode is om de foutcode van elke uitzonderingsklasse rechtstreeks op te halen. Bijvoorbeeld:
vangst (uitzondering) (bijvoorbeeld if.InnerException is ServiceResponseException) ServiceResponseException srex = ex.InnerException eenmaal ServiceResponseException; ErrorCode-groep = srex.ErrorCode.ToString ();
tevreden 17 april om 12:26 uur.
… …
129 33 zilveren badges 44 lichtbruine badges …
…
Versnel de prestaties van uw computer nu met deze eenvoudige download.
Vuur een signaal af, stop mijn invoerblok en gebruik de debugger om de uitzondering visueel aantrekkelijk te maken en te zien welk bewijs je hebt. -Als alternatief kunt u de uitwisseling krijgen zonder foutopsporing en het type uitzondering hierop gooien met GetType ().
Het is normaal gesproken eenvoudig om een uitzondering te gebruiken. ToString () ze retourneren Er is een regel na de belangrijkste beschrijving van het verschil. U kunt ook de debug-database van het softwarepakket bekijken terwijl deze debug-informatie / meer bevat of niet, terwijl de hele applicatie wordt gelogd.
Syntaxisfouten treden op tijdens de ontwerptijd wanneer individuen typefouten in uw code maken. Als je bijvoorbeeld volledig schrijft terwijl je schrijft, omdat je in dat geval WHILE schrijft, loop je zeker tegen een syntaxisfout aan omdat C-nummer een hoofdlettergevoelige taal is.