Frage

Ich versuche, eine 'spezifische' Ausnahme (formatexception^oder overflowexception^) zu fangen und dann wieder zu werfen und in der "allgemeinen" Ausnahme (Ausnahme) Catch -Block zu fangen.

Beim Ausführen gebe ich ihm eine Formatausnahme durch Eingabe. Ich erhalte diesen Fehler dann in einem Dialogfeld: "Eine nicht behandelte Ausnahme des Typs 'System.formatexception' ist in FutureValue.exe zusätzliche Informationen: Eingabezeichenfolge war nicht in einem korrekten Format." Wenn ich auf 'Break' klicke, brauche ich zu Zeile Nr. 232.

Hier ist der Teilcode:

try
{
...
}
catch(FormatException^ ex)
{
      MessageBox::Show("FormatException Occured.  Message: " + ex->Message);
      throw;
}
***line# 232*** catch(OverflowException^ ex)
{
      MessageBox::Show("Overflow Occured. Message: " + ex->Message);
      throw;
}
catch(Exception^ ex)
{
      MessageBox::Show("TESTING");
}
War es hilfreich?

Lösung

Der Ausdruck von Rethrow (Wurf ohne Zuweisung_Expression) wird dazu führt, dass das ursprünglich geworfene Objekt überlegt wird. Da die Ausnahme bereits in dem Umfang erwischt wurde, in dem der Ausdruck von Rethrow auftritt, wird sie auf den nächsten dynamisch einschließenden Try -Block überdreckt. Daher kann es nicht durch Fangblöcke an dem Umfang behandelt werden, in dem der Ausdruck von Rethrow auftrat.

Wenn Sie oben berücksichtigt werden, möchten Sie Ihren Code möglicherweise wie folgt schreiben:

try
{
    try
    {
       //...
    }
    catch(FormatException^ ex)
    {
          MessageBox::Show("FormatException Occured.  Message: " + ex >Message);
          throw;
    }
    catch(OverflowException^ ex)
    {
          MessageBox::Show("Overflow Occured. Message: " + ex->Message);
          throw;
    }
}
catch(Exception^ ex)
{
      MessageBox::Show("TESTING");
}

Andere Tipps

Gibt es einen Versuchsfangblock darüber?

Sie haben gerade eine Ausnahme mit der Wurfaussage gemacht, niemand fängt sie auf. Der Debugger hat Sie dorthin gebracht, wo die Ausnahme ausgelöst wurde

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top