Qu'est-ce qu'une exception de première chance exactement? Comment et d'où vient-il dans un programme .NET? Et pourquoi est-il appelé par ce nom particulier (de quelle «chance» parlons-nous)?
Qu'est-ce qu'une exception de première chance exactement? Comment et d'où vient-il dans un programme .NET? Et pourquoi est-il appelé par ce nom particulier (de quelle «chance» parlons-nous)?
Réponses:
C'est un concept de débogage. Fondamentalement , les exceptions sont jetés au débogueur d' abord , puis le programme réel où s'il n'est pas traitée , il est jeté au débogueur une deuxième fois, vous donnant une chance de faire quelque chose avec elle dans votre IDE avant et après l'application elle - même. Cela semble être une invention de Microsoft Visual Studio.
catch
pour cela, le contrôle y va. S'il n'y a pas de catch
blocage, vous obtenez la coupure de «seconde chance», cette fois le message est Une exception non gérée de type «foo» s'est produite dans YourApp.exe . À partir de là, essayer de continuer ou d'aller plus loin ne réussira pas.
Les notifications d'exception de première chance sont déclenchées lorsqu'une exception est levée. Les notifications de seconde chance sont quand elles ne sont pas interceptées. (Chance - comme l'occasion de pénétrer dans le code dans le débogueur).
Je viens de commencer à utiliser le débogueur et je suis tombé sur ceci. Dans mes recherches, j'ai trouvé le billet de blog MSDN Qu'est-ce qu'une exception de première chance? cela m'a éclairci.
Ce que je retiens du blog, c'est qu'il fait référence à la notification au débogueur, et non à quelque chose que mon code aurait nécessairement besoin de gérer, et surtout, "Les messages d'exception de première chance ne signifient le plus souvent pas qu'il y a un problème dans le code."
Lorsqu'une application est en cours de débogage, le débogueur est notifié chaque fois qu'une exception est rencontrée. À ce stade, l'application est suspendue et le débogueur décide comment gérer l'exception. Le premier passage à travers ce mécanisme est appelé une exception de «première chance».
En fonction de la configuration du débogueur, il reprendra l'application et transmettra l'exception ou laissera l'application suspendue et entrera en mode débogage. Si l'application gère l'exception, elle continue de s'exécuter normalement.
Le plus souvent, les messages d'exception de première chance ne signifient pas qu'il y a un problème dans le code. Pour les applications / composants qui gèrent correctement les exceptions, les messages d'exception de première chance indiquent au développeur qu'une situation exceptionnelle a été rencontrée et a été gérée.
Du point de vue d'un développeur, il s'agit plus d'une exception de seconde chance, car cela signifierait qu'elle n'a pas été gérée dans le code ; l'application s'arrêterait donc.
La première chance pourrait être beaucoup d'entre elles, mais celles dont il faut se préoccuper davantage, encore une fois, du point de vue du développement, sont la deuxième chance, car cela entraînerait un plantage de l'application.
finally
exécution de tout bloc. Une fois que le système a décidé qui va intercepter une exception (et déterminé que quelqu'un va réellement), le système commencera à dérouler la pile. Notez que si une exception est lancée à partir d'unfinally
bloc ...