¿Cuál es la mejor manera de lidiar con las excepciones lanzadas en un método de encadenamiento en Perl? que desea asignar un valor de 0 o undef si cualquiera de los métodos tiro encadenado una excepción¿Cómo manejo los errores en cadenas de métodos en Perl?
Ejemplo de código:
my $x = $obj->get_obj->get_other_obj->get_another_obj->do_something;
cuál es la mejor manera de hacerlo? ¿Debo completar una declaración try/catch/finally cada vez? El contexto que quiero aplicar es: estoy trabajando en desarrollo web usando Catalyst y DBIC y hago muchos resultados encadenados y si algunos de estos resultados arrojan una excepción solo quiero asignar un valor de 0 o undef y luego tratar este error en la plantilla (estoy usando Template Toolkit). Si hay otra forma de hacerlo sin envolver cada llamada en try/catch, házmelo saber. Si conoce una mejor manera de tratar este tipo de error en el mismo contexto (Catalyst/DBIC/TT), sugiérale. Un ejemplo práctico sería cuando el usuario busca algo y esto no existe.
Un problema con esto: los métodos de Setter utilizarán una entrada nula para significar devolver el cur valor de alquiler Por ejemplo, '$ foo-> Name (" David ") establecerá el nombre a' David', y '$ foo-> Name' devolverá el nombre actual. Por lo tanto, un retorno nulo de un método podría ser una entrada válida para otro método. –
Eso no es realmente un problema. Es un no-op. Los métodos posteriores no hacen nada. No está pasando el objeto nulo como argumento; es el referente. Si el método anterior no devuelve un objeto, no puede encadenar de todos modos. –
Lo siento, no entendí. ¿Cómo podría aplicarlo en un DBIC encadenando resultados? – nsbm