Siest approprié au milieu du script dépend vraiment de ce que vous faites. Si ce n'est que des dizaines de lignes, alors ça va. Un petit outil avec quelques centaines de lignes, puis envisager d'avouer (voir ci-dessous). Si c'est un grand système orienté objet avec beaucoup de classes et de code interconnecté, alors un objet d'exception serait peut-être mieux.
confessons dans le paquet Carp:
Souvent, le bug qui a conduit à la filière n'est pas sur la ligne qui meurent des rapports. Remplacer le dé avec avouer (voir paquet Carp) donnera la trace de la pile (comment nous sommes arrivés à cette ligne) qui facilite grandement le débogage.
Pour la gestion des exceptions à partir de builtins Perl, j'aime utiliser autodie. Il attrape les échecs de open
et d'autres appels système et lance des exceptions pour vous, sans avoir à faire le bit or die
. Ces exceptions peuvent être capturées avec un , ou mieux encore, en utilisant Try::Tiny.
Pour les discussions sur les exceptions perl, voir [Qu'est-ce qui est cassé à propos des exceptions en perl?] (Http://stackoverflow.com/questions/2165161/whats-broken-about-exceptions-in-perl), [utilisez-vous un classe d'exception dans vos programmes Perl? Pourquoi ou pourquoi pas?] (Http://stackoverflow.com/questions/2439966/do-you-use-an-exception-class-in-your-perl-programs-why-or-why-not), et [ Gestion des exceptions orientées objet en Perl - cela en vaut-il la peine?] (Http://stackoverflow.com/questions/503189/object-oriented-exception-handling-in-perl-is-it-worth-it) – Ether