I hope I'm not (merely) betraying my ignorance here, but what (other than making Perl look like some other languages) does this have over the normal Perl error-handling methods?
(I couldn't really tell from your examples.)
There are probably some things you can do with this that would be difficult the normal Perl way. But not knowing Java, etc., I'm afraid I can't see them (without some help).