Wie kann ich eine Exception mit einem bestimmten HResult auslösen?

9

Ich möchte den folgenden Code testen:

%Vor%

Ich möchte das Objekt Exception irgendwie einrichten, um das korrekte HResult zurückzugeben, aber ich sehe kein Feld in der Klasse Exception , das dies erlaubt.

Wie würde ich das tun?

    
g t 22.06.2012, 14:37
quelle

2 Antworten

12

Ich habe drei Möglichkeiten gefunden:

  1. Verwenden Sie die Klasse System.Runtime.InteropServices.ExternalException und geben Sie den Fehler ein Code als Parameter:

    %Vor%

    Danke @HansPassant für seinen Kommentar, der das erklärt.

  2. Übergeben Sie eine Scheinausnahme unter Verwendung der Vererbung, um auf ein geschütztes Feld zuzugreifen:

    %Vor%
  3. Verwenden Sie .NET Reflection, um das zugrunde liegende Feld festzulegen:

    %Vor%

Das Übergeben einer dieser Ausnahmen an die Methode in der Frage führt dazu, dass diese Methode true zurückgibt. Ich vermute, dass die erste Methode am nützlichsten ist.

    
g t 22.06.2012, 15:35
quelle
1

Ich finde es nützlich, eine Erweiterung dafür zu erstellen.

%Vor%

Dann werfen Sie die Ausnahme:

%Vor%     
Ahmad Firdaus 13.09.2013 02:57
quelle