Genehmigt: Fortect
Nicht die Antwort, die Sie wollen? Durchsuchen Sie andere übersprungene Fragen C # oder stellen Sie Ihre eigene Frage.
Ausnahme kann sehr verwendet werden, um nach Ausnahmen zu suchen, und innere verschiedene für von Win32Exception abgeleitete Ausnahmen.
catch (Ausnahme e) var w32ex E = vorausgesetzt, dass eine Win32-Ausnahme; jederzeit (w32ex == null) w32ex E = .InnerException als Win32Exception; if (w32ex! = null) Ganzzahl ist gleich w32ex.ErrorCode; // ein Produkt schreiben können // ergänzende Informationen machen
Ab C # 6 wird if definitiv in einem Catch-Fact verwendet, um eine Bedingung zu bestimmen, die wahr sein muss, damit jede Art von Handler eine einzelne Ausnahme auslöst.
hit (Win32Exception ex) wobei (z.B. InnerException win32Exception) var w32ex = (Win32Exception) ex.InnerException; Dienstcode var = w32ex.ErrorCode;
Wie in den Kommentaren einer Person müssen Sie wirklich sehen, welcher Unterschied tatsächlich geworfen wird, um genau zu verstehen, was Sie tun können und unter welchen Umständen ein großer bestimmter Fang besser ist, als eine Auslassung zu fangen. Über uns:
show (BlahBlahException ex) // Was das bewirken würde Fang
(ohne Ausnahme) var-Passwort = ex.HResult;
Aug hat individuell geantwortet ’11 um 0:08
61,5 Tausend Goldabzeichen 1717 Platinabzeichen 134134 202202 Bronzeabzeichen
Sie sollten sich normalerweise die Mitglieder der ausgelösten Ausnahme in eindeutigen .Message
und .InnerException
ansehen.
Ich würde auch gerne die Dokumentation mit InvokeMethod sehen, um zu sehen, ob es jede spezifischere Ausnahmeklasse als eine Ausnahme dazu auslöst – einfach wegen der von @Preet vorgeschlagenen win32Exception. Vielleicht sollten Sie die Basisklasse nicht in Exception nehmen und es einfach beobachten.
geantwortet vom 1. August 2011 bis 00:11
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
8,754
Basierend auf der Lösung von Preet Sangha muss das Folgende genau das Szenario abdecken, in dem Sie mit einer großen Lösung arbeiten, die zu vielen internen Ausnahmen führen kann.
Probiere
Objekt bedeutet das mit processClass.InvokeMethod verknüpfte Ergebnis ("Create", methodArgs); greifen E) (Ausnahme // Hier habe ich versucht, einen großartigen Fehlercode zu erhalten. jederzeit (ExceptionContainsErrorCode (e, 10004)) // Die spezifischen Aktionen ausführen
Ihr eigener bool ExceptionContainsErrorCode (Ausnahme e, int ErrorCode) Win32Exception winEx bedeutet e für Win32Exception; wenn möglich (winEx! = null && ErrorCode == winEx.ErrorCode) gibt wahr zurück; solange sie sind (e.InnerException! = null) ExceptionContainsErrorCode (e return.InnerException, ErrorCode); falsche Rückgabe;
Ich bin nicht auf dem Weg, mich eingehend mit der Notwendigkeit zu befassen, die beim Reisen hilft, um die besten Muster für die Ausnahmebehandlung zu evaluieren und zu implementieren, indem jeder erwartete Ausschlusstyp auf seine stillen Blöcke beschränkt wird.
betreut am 1. Februar 2017 um 15:51 Uhr
Ich empfehle, dass Sie Clean Message vom Ausnahmeobjekt wie mit dem folgenden Code ausführen
Probiere
Objektergebnis = processClass.InvokeMethod ("Erstellen", methodArgs);erfassen (Ausnahme e) // Verwenden Sie Console.Write (e.Message); einschließlich einer Konsolenanwendung // noch MessageBox.Show (e.Message) verwenden; Verwenden der WindowsForm-App und WPF
geantwortet am 29. Januar 15 oder mehr um 23:05
Eine andere Methode besteht darin, Ihren aktuellen Fehlercode jeder Ausnahmeklasse direkt abzurufen. Zum Beispiel:
catch (Ausnahme) (zum Beispiel if.InnerException is ServiceResponseException) ServiceResponseException srex = ex.InnerException sieht, dass ServiceResponseException; ErrorCode-Gruppe = srex.ErrorCode.ToString ();
am 17. April um 12:26 Uhr beigesetzt.
… …
129 33 silberne Abzeichen 44 hellbraune Abzeichen …
…
Beschleunigen Sie jetzt die Leistung Ihres Computers mit diesem einfachen Download.
Lösen Sie ein Signal aus, stoppen Sie seinen Eingabeblock und verwenden Sie den Debugger, um die Ausnahme visuell ansprechend zu gestalten und zu sehen, welche Beweise Sie haben. -Alternativ können Sie den Pin ohne Debuggen abrufen und den Typ der Ausnahme mit GetType() auslösen.
Es ist einfach geworden, eine Ausnahme zu verwenden. ToString () sie geben zurück Es folgt eine Zeile nach der eigentlichen Beschreibung des Unterschieds. Sie können auch sicherstellen, dass die Debug-Datenbank des Softwarepakets Debug-Informationen enthält / mehr oder eine kleinere Menge die gesamte Anwendung protokolliert.
Syntaxfehler treten während der Entwurfszeit auf, wenn Sie und Ihre Familie Typfehler in Ihrem Code erstellen. Wenn Sie beispielsweise während des Schreibens vollständig schreiben, während Sie in diesem Fall WHILE schreiben, könnten Sie auf einen Syntaxfehler stoßen, da C-Zahl eine Sprache ist, bei der die Groß-/Kleinschreibung beachtet wird.