Quoi qu'il en soit, je suis un peu confus sur le moment de propager une exception et quand l'envelopper, et les différences. Pour l'instant, ma compréhension me dit que l'enroulement d'une exception impliquerait de prendre une exception comme DriveNotFound (dans IO) et de l'encapsuler avec l'exception IOException générale. Mais avec le concept de propagation d'une exception, est-ce seulement quelque chose qui arrive si j'ai une clause catch vide? Ainsi, dans une application Web ASP.NET, il serait propagé à global.asax. Ou dans le cas d'une application web récemment déployée, une HTTPException non gérée a donné un écran de mort jaune et a écrit un journal sur Windows Server (il s'agit d'une application web que je réécris). Ainsi, l'exception se produit dans une méthode, elle peut être traitée au niveau de la classe, affichée dans la page, puis va jusqu'à global.asax ou Windows Server.Pratiques de gestion des exceptions
Pourquoi exactement je veux envelopper une exception avec une exception plus générique? La règle est de gérer une exception avec le type le plus spécifique (donc DriveNotFound pour évidemment un lecteur non trouvé). Aussi, comment choisirais-je entre l'emballage et le remplacement d'une exception?
La chaîne de traitement des exceptions est-elle constituée uniquement des clauses try et catch (ou catch)? Je suppose du libellé, oui.
Enfin, pourquoi et comment voudrais-je laisser une exception se propager dans la pile d'appel? J'ai lu le guide MS PandP sur la gestion des exceptions, mais je suppose que les exemples ne m'ont pas assez engagé pour bien comprendre tout.
Cette question provient de la bibliothèque d'entreprise la possibilité d'envelopper/propager une exception et etc. C'est la propagation dont je ne suis pas sûr, et les différences dans le remplacement/encapsulation d'une exception.
De même, est-ce correct d'insérer une logique de traitement d'erreur complexe dans un bloc catch (par exemple ifs/elses et des choses comme ça).
Merci