Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
The stupid question is the question not asked
 
PerlMonks  

Re: Exception handling for Image::Magick

by simonm (Vicar)
on Sep 05, 2004 at 20:42 UTC ( [id://388689]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to Exception handling for Image::Magick

I think that you can take advantage of the fact that the error messages all look like "Error 300: Couldn't foo the bar." The code below should work unless the string returned by GetAttribute happens to be formatted to look like an error message.
use Exception::Class ( 'Image::Magick::Exception' => { fields => [ 'type', 'errno', 'msg' ] + } ); ... my $result = &{"hidden::$cmethod"}; if( "$result" =~ /^(\w+)\s(\d\d\d):\s(.*)/ ) { Image::Magick::Exception->throw( error => "$result", type => $1, errno => $2, msg => $3 ); }; return $result

More generally, it looks like the really proper fix to this would involve twiddling the glue code in Magick.xs. I took a look at the code and I think a global flag could be added that changed the behavior of MagickErrorHandler and MagickWarningHandler, equivalent to DBI's RaiseError flag, but I don't have enough XS experience to know the right way to implement this.

Replies are listed 'Best First'.
Re^2: Exception handling for Image::Magick
by redlemon (Hermit) on Sep 06, 2004 at 03:18 UTC

    Brilliantly simple!! If it looks like a duck and quacks like a duck, it probably is a duck.

    Cheers,

    --
    Lyon

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://388689]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.