Packages / openSUSE Tumbleweed / Unspecified / perl-Try-Tiny
[Source: perl-Try-Tiny]
Package: perl-Try-Tiny (0.320.0-1.6)
[Project overview: perl-try-tiny]
try/catch mínimo con preservación correcta de $@
Este módulo proporciona sentencias 'try'/'catch'/'finally' básicas diseñadas
para minimizar errores comunes con bloques eval, y NADA más.
Esto es distinto de TryCatch, que ofrece una sintaxis agradable, evita añadir
otra capa a la pila de llamadas y permite llamar a 'return' desde el bloque 'try'
para retornar de la subrutina padre. Estas funciones extra tienen el
coste de algunas dependencias, concretamente Devel::Declare y Scope::Upper, que
ocasionalmente son problemáticas, y el filtrado adicional de catch usa restricciones
de tipo Moose que tampoco pueden ser deseables.
El enfoque principal de este módulo es proporcionar un manejo de errores simple y fiable
para quienes tienen dificultades instalando TryCatch, pero que aún
quieren escribir bloques 'eval' correctos sin 5 líneas de código repetitivo cada
vez.
Está diseñado para funcionar tan correctamente como sea posible ante los diversos
casos límite patológicos (véase BACKGROUND) y para ser compatible con cualquier
estilo de valores de error (cadenas simples, referencias, objetos, objetos
sobrecargados, etc.).
Si el bloque 'try' muere, devuelve el valor de la última sentencia
ejecutada en el bloque 'catch', si hay uno. En caso contrario, devuelve
'undef' en contexto escalar o la lista vacía en contexto de lista. Los siguientes
ejemplos asignan todos '"bar"' a '$x':
my $x = try { die "foo" } catch { "bar" };
my $x = try { die "foo" } || "bar";
my $x = (try { die "foo" }) // "bar";
my $x = eval { die "foo" } || "bar";
Puede añadir bloques 'finally', obteniendo lo siguiente:
my $x;
try { die 'foo' } finally { $x = 'bar' };
try { die 'foo' } catch { warn "Got a die: $_" } finally { $x = 'bar' };
Los bloques 'finally' se ejecutan siempre, lo que los hace adecuados para código de limpieza
que no puede manejarse con local. Puede añadir tantos bloques 'finally'
a un bloque 'try' dado como desee.
Tenga en cuenta que añadir un bloque 'finally' sin un bloque 'catch' precedente
suprime cualquier error. Este comportamiento es coherente con usar un
'eval' independiente, pero no es coherente con los patrones 'try'/'finally' de
otros lenguajes de programación, como Java, Python, Javascript o C#. Si aprendió
el patrón 'try'/'finally' en uno de estos lenguajes, tenga cuidado
con esto.
Other Packages Related to perl-Try-Tiny:
Download perl-Try-Tiny
| Architecture | Package Size | Installed Size | Files |
|---|
| noarch | 32 KiB | 38 KiB | [list of files] |
Rutas de archivos del paquete (9)
Paths come from the repository package-file index for the observed builds. They describe archive/package associations, not every file that will exist on a running system after maintainer scripts, alternatives, generated state, diversions, or installation choices.
- /usr/lib/perl5/vendor_perl/5.44.0/Try
- /usr/lib/perl5/vendor_perl/5.44.0/Try/Tiny.pm
- /usr/share/doc/packages/perl-Try-Tiny
- /usr/share/doc/packages/perl-Try-Tiny/Changes
- /usr/share/doc/packages/perl-Try-Tiny/CONTRIBUTING
- /usr/share/doc/packages/perl-Try-Tiny/README
- /usr/share/licenses/perl-Try-Tiny
- /usr/share/licenses/perl-Try-Tiny/LICENCE
- /usr/share/man/man3/Try::Tiny.3pm.gz
Field source: openSUSE Tumbleweed OSS revision tumbleweed-oss-multiarch:4db10cdde3ad82c7e22be35753c9e164b4bdd30f92db4aee17a0d4c94c5f902f