Si die
es apropiado en el medio de la secuencia de comandos realmente depende de lo que está haciendo. Si solo son decenas de líneas, está bien. Una pequeña herramienta con un par de cientos de líneas, luego considere confesar (ver abajo). Si se trata de un gran sistema orientado a objetos con muchas clases y código interconectado, entonces tal vez un objeto de excepción sería mejor.
confesar en el paquete Carp:
A menudo, el error que provocó la muerte no está en la línea que muere informes. Reemplazar el dado con confess (ver paquete Carp) dará el rastro de la pila (cómo llegamos a esta línea) que ayuda mucho en la depuración.
Para manejar excepciones de construcciones Perl, me gusta usar autodie. Captura fallas de open
y otras llamadas al sistema y generará excepciones para usted, sin tener que hacer el bit or die
. Estas excepciones se pueden capturar con un eval { }
, o mejor aún, usando Try::Tiny.
Para ver las discusiones sobre las excepciones de Perl, consulte [¿Qué hay de malo en las excepciones en Perl?] (Http://stackoverflow.com/questions/2165161/whats-broken-about-exceptions-in-perl), [¿Utiliza una clase de excepción en sus programas Perl? ¿Por qué o por qué no?] (Http://stackoverflow.com/questions/2439966/do-you-use-an-exception-class-in-your-perl-programs-why-or-why-not), y [ Manejo de excepciones orientado a objetos en Perl: ¿vale la pena?] (Http://stackoverflow.com/questions/503189/object-oriented-exception-handling-in-perl-is-it-worth-it) – Ether