Hello World! I'm working with some data objects that throw Exception::Class::DBI if, for some reason, the database doesn't what you expect. Well, yeah, I did write these data objects myself, and Exception::Class::DBI seemed right since they are intended for the use of DBI, I (think I) know I could in principle let the DBI throw an Apache::AxKit::Exception, but for various reasons... well, lets just say for the sake of the argument, that a Exception::Class::DBI has been thrown by a module I can't modify, and I want to get some more sensible things in the error logs than "unknown exception"...
I'm not quite used to working with exceptions yet, but I realize the great value compared to other types of error handling, so I'd really like to use them. So, what I figured is that I'll just catch the exception, and then throw a Apache::AxKit::Exception::IO instead, with the error string from the Exception::Class::DBI as -text. This would be the standard way to do it, and for now, I can't think of a situation where I would like to do it differently, and since I'm Lazy, I therefore would like to write that code only once. I have a bunch of Taglibs and Providers, and they inherit stuff from things higher in the hierarchy. So I guess I could implement the catch there. But I after having thought about it for some time, I couldn't imagine any way to do it... So, instead, I started playing with a situation where I have a known bug that causes the database to fail and throw a Exception::Class::DBI::STH. Still, in this situation, I did not find a way to accomplish what I wanted. The error happens under some circumstances when my Taglib instructs the object to save itself (i.e. INSERT itself into the database table). So, I thought I'd just put the catch immediately after the save, like this: $story->save(); catch Exception::Class::DBI with { my $ex = shift; throw Apache::AxKit::Exception::IO( -text => $ex->error ); } What happens here is that an exception is thrown in the save(), and I was hoping to catch it immediately afterwards. But apparently, that's not how it works, this is how the error log looks: [Fri Jan 23 23:05:02 2004] [warn] [client 127.0.0.1] [AxKit] Caught an exception Use of uninitialized value in subroutine entry at /usr/local/lib/perl/5.6.1/AxKit.pm line 332. [Fri Jan 23 23:05:02 2004] [error] Unknown exception, type: Exception::Class::DBI::STH at /usr/local/lib/perl/5.6.1/AxKit.pm line 391. So, I'm wondering, how should I go about to do this Right? Cheers, Kjetil --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]