El consenso de la comunidad de Perl parece ser que Try::Tiny es la forma preferida de hacer un manejo de excepciones. La "política indulgente" que se refieren a es probablemente debido a una combinación de:
- Perl no ser un lenguaje totalmente orientado a objetos. (Por ejemplo, en contraste con Java donde no puede evitar el tratamiento de excepciones.)
- El trasfondo de muchos desarrolladores de Perl. (Los lenguajes como C y shell no tienen mecanismos de excepción ).
- El tipo de tareas para las que la gente suele usar Perl. (Scripts pequeños para munging de texto y generación de informes donde no es necesario el manejo de excepciones.)
- Perl que no tiene un mecanismo de excepción (bueno) incorporado.
Tenga en cuenta que el último punto significa que usted va a ver un montón de código como este:
eval { something() };
if ([email protected]) {
warn "Oh no! [[email protected]]\n";
}
Ese es el manejo a pesar de que no utiliza try/sintaxis captura excepción. Sin embargo, es frágil y se dividirá en varios casos sutiles en los que la mayoría de la gente no piensa. Try :: Tiny y los otros módulos de manejo de excepciones en CPAN se escribieron para que sea más fácil hacerlo bien.
1. C tiene setjmp()
y longjmp()
, que puede ser utilizado para una forma muy cruda de manejo de excepciones.
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-programs-why-or-why-not http://stackoverflow.com/questions/1426501/how-do-i-handle-exceptions-in-a-procedural-language - ¿realmente necesitamos otra publicación sobre el manejo de excepciones de Perl? – Ether
Consulte mi respuesta en [¿Sigue siendo recomendable :: Tiny para el manejo de excepciones en Perl 5.14 o posterior?] (Http://stackoverflow.com/a/10374265/2766176) –