Question

J'essaie d'attraper une exception «spécifique» (Formatexception ^ ou OverflowException ^), puis la lancer et la rattraper dans le bloc de capture «Général» (exception ^).

Lors de l'exécution, je lui donne une exception de format via l'entrée. J'obtiens ensuite cette erreur dans une boîte de dialogue: "Une exception non gérée du type 'System.Formatexception' s'est produite dans FutureValue.exe Informations supplémentaires: la chaîne d'entrée n'était pas dans un format correct." Lorsque je clique sur «Break», cela me mène à la ligne n ° 232.

Voici le code partiel:

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");
}
Était-ce utile?

La solution

L'expression de Rethrow (Throw sans affectation_expression) fait repenser l'objet initialement jeté. Étant donné que l'exception a déjà été capturée à la portée dans laquelle l'expression de Rethrow se produit, elle est relâchée au prochain bloc d'essai qui enlève dynamiquement. Par conséquent, il ne peut pas être géré par des blocs de capture au niveau de la portée dans laquelle l'expression de Rethrow s'est produite.

En prenant en compte ci-dessus, vous voudrez peut-être écrire votre code comme ceci:

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");
}

Autres conseils

Y a-t-il un bloc d'essai au-dessus de cela?

Vous venez de lancer une exception avec la déclaration de lancer, personne ne l'attrape. Le débogueur vous a emmené où l'exception a été lancée

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top