Le consensus de la communauté Perl semble être que Try::Tiny est la manière préférée de gérer les exceptions. La "politique indulgente" à laquelle vous faites référence est probablement due à une combinaison de:
- Perl n'étant pas un langage entièrement orienté objet. (Par exemple, contrairement à Java où vous ne pouvez pas éviter les exceptions.)
- L'arrière-plan de nombreux développeurs Perl. (Les langages comme C et le shell n'ont pas de mécanismes d'exception )
- Le type de tâches que les gens ont tendance à utiliser pour Perl. (Petits scripts pour la fusion de texte et génération de rapports où la gestion des exceptions n'est pas nécessaire.)
- Perl ne disposant pas d'un mécanisme d'exception (bon) intégré.
Notez que le dernier élément signifie que vous verrez beaucoup de code comme ceci:
eval { something() };
if ([email protected]) {
warn "Oh no! [[email protected]]\n";
}
C'est la gestion des exceptions, même si elle n'utilise pas essayer/syntaxe catch. C'est fragile, cependant, et va casser dans un certain nombre de cas de bord subtiles que la plupart des gens ne pensent pas. Essayez :: Tiny et les autres modules de gestion des exceptions sur le CPAN ont été écrits pour faciliter les choses.
1. C a setjmp()
et longjmp()
, qui peut être utilisé pour une forme très brute de gestion des exceptions.
dupe de http://stackoverflow.com/questions/503189/is-object-oriented-exception-handling-in-perl-worth-it http://stackoverflow.com/questions/2165161/whats- broken-about-exceptions-in-perl http://stackoverflow.com/questions/2439966/do-you-use-an-exception-class-in-your-perl-programmes-pourquoi-ou-pourquoi-pas http://stackoverflow.com/questions/1426501/how-do-i-handle-exceptions-in-a-procedural-language - Avons-nous vraiment besoin d'un autre article sur la gestion des exceptions Perl? – Ether
Voir ma réponse dans [Est-ce que Try :: Tiny est toujours recommandé pour la gestion des exceptions dans Perl 5.14 ou version ultérieure?] (Http://stackoverflow.com/a/10374265/2766176) –