Ken,

> I don't think that works, because this is an Error instead of an
> Exception.

Try changing caught("java.lang.Exception") to caught("java.lang.Error") or
caught("java.lang.Throwable") and that should work. In any case if your
sure your dealing with
main::java::lang::NoClassDefFoundError=HASH(0xa594ec),
you can just try [EMAIL PROTECTED]>getMessage()

(In this case $@ contains a "reference" to the actual java.lang.Throwable
object (in your case java.lang.NoClassDefFound) that was thrown by Java)

Cheers,

Patrick
---------------------
Patrick LeBoutillier
Laval, Quebec, Canada
----- Original Message ----- 
From: "Ken Williams" <[EMAIL PROTECTED]>
To: "Patrick LeBoutillier" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Monday, October 20, 2003 11:11 PM
Subject: Re: NoClassDefFoundError


>
> On Monday, October 20, 2003, at 06:54  PM, Patrick LeBoutillier wrote:
>
> > Ken,
> >
> > This probably means that some code you are using can't find a specific
> > class. Try putting eval around you script like this see what's going
> > on:
> >
> > use Inline::Java qw(caught) ;
> >
> > eval {
> >    # ...
> > } ;
> > if ($@){
> >   if (caught("java.lang.Exception")){
> >      # Java exception...
> >       my $msg = [EMAIL PROTECTED]>getMessage() ;
> >       print($msg . "\n") ;
> >   }
> >   else{
> >      # It wasn't a Java exception after all...
> >      die $@ ;
> >   }
> > }
>
> I don't think that works, because this is an Error instead of an
> Exception.  Or something.  In any case, I tried to use a $SIG{__DIE__}
> to get a stack trace, and it didn't work.  I presumed the error wasn't
> trappable.
>
> I'll try it again tomorrow when I'm at work, where the code is.
>
> Let me just make it clear how very awesome Inline::Java is, by the way
> - it means I can do my research using my colleagues' Java libraries and
> I still get to use Perl. =)  I'm finding the J/P interface extremely
> well-designed so far, kudos.
>
>   -Ken
>
>

Reply via email to