in reply to Re^3: conditional catch-blocks 'try {} catch(COND) { }'
in thread conditional catch-blocks 'try {} catch(COND) { }'
A little bit more code and indenting than expected, but yes, that should work.
Try::Tiny implements catch as a prototyped sub (sub catch (&;@)), so it should be possible to implement something like sub catchif ($&;@) that accepts an additional parameter, and to extend the logic in sub try to basically implement your handle_error() function.
That would allow the following syntax that at least looks similar to try-catch in other languages:
try { # ... } catchif TypeError => { # ... } catchif RangeError => { # ... } catch { # ... } finally { # ... }
I think it would not need many changes:
Alexander
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: conditional catch-blocks 'try {} catch(COND) { }'
by LanX (Saint) on Sep 21, 2021 at 11:39 UTC | |
by afoken (Chancellor) on Sep 21, 2021 at 18:54 UTC | |
by LanX (Saint) on Sep 21, 2021 at 21:33 UTC |