Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
HResult aus System.Exception auslesen
HiJack82
myCSharp.de - Member



Dabei seit:
Beiträge: 19

Themenstarter:

HResult aus System.Exception auslesen

beantworten | zitieren | melden

Hallo zusammen,

ich habe einen Fall, bei dem ich den HResult Wert aus einer System.Exception auslesen muss. Leider ist diese Property (get private).

Kennt jemand einen guten Weg an den HResult Wert zu kommen?
private Nachricht | Beiträge des Benutzers
LaTino
myCSharp.de - Experte

Avatar #avatar-4122.png


Dabei seit:
Beiträge: 3.003
Herkunft: Thüringen

beantworten | zitieren | melden

Vermutlich bist du auf eine Frameworkversion < 4.5 (ab da ist der HResult-Getter public) beschränkt?

Falls dem so ist - Reflection und https://msdn.microsoft.com/en-us/library/6kec8wwk.aspx

LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
private Nachricht | Beiträge des Benutzers
HiJack82
myCSharp.de - Member



Dabei seit:
Beiträge: 19

Themenstarter:

beantworten | zitieren | melden

Vielen Dank schon mal für die Auskunft. Das ist ja hoch interessant.
Ja genau, ich bin auf VS2010 beschränkt. Das bietet mir nur .NET 4.0

Mit dem Link komme ich nicht klar. Mit Type.GetType() bekomme ich die Properties der System.Exception Klasse. Die kann ich aber auch im Object-Browser nachlesen. Was ich brauche ist der Int32 Wert des HResults. Wie ich da ran komme ist mir immer noch total unklar.

Kann mir vielleicht jemand einen Code-Schnippsel schicken?
Ich hab mich schon wund-gegoogelt, ich find einfach nix zu dem Thema. Vielleicht suche ich mit den falschen Begriffen...
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von HiJack82 am .
private Nachricht | Beiträge des Benutzers
HiJack82
myCSharp.de - Member



Dabei seit:
Beiträge: 19

Themenstarter:

beantworten | zitieren | melden

Puh, jetzt hab ich endlich was gefunden.


int HResult = Marshal.GetHRForException(ex);

Jetzt weiß ich nur nicht, ob ich das in einem Try Catch abfragen muss. Gibt es vielleicht irgendwelche Exceptions ohne HRESULT?
private Nachricht | Beiträge des Benutzers
Cat
myCSharp.de - Member

Avatar #avatar-3070.jpg


Dabei seit:
Beiträge: 771

beantworten | zitieren | melden

Bei Type.GetProperties (bzw. GetProperty etc.) kannst du als Parameter BindingFlags.NonPublic angeben:


Exception e;

var prop = e.GetType().GetProperty("HResult", BindingFlags.NonPublic | BindingFlags.Instance);
int hresult = (int)prop.GetValue();
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Cat am .
private Nachricht | Beiträge des Benutzers
HiJack82
myCSharp.de - Member



Dabei seit:
Beiträge: 19

Themenstarter:

beantworten | zitieren | melden

Danke, dass war sehr hilfreich!
private Nachricht | Beiträge des Benutzers