----- Original Message -----
From: "Markus Schneider" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, October 03, 2006 9:36 PM
Subject: Catching Exception from OLE Object
> Hi,
>
> I am using Win32OLE to test an application.
>
> For some tests the application throws a "divide by zero" exception,
> due to bugs in the SW.
>
> However, I cannot put this in my test report, since
> Win32::OLE->LastError() does not return the exception.
> In fact, it returns "0".
>
> Anybody can give me a hint how to catch the exception and make
> a nice trace in my report?
>
>From 'perldoc Win32::OLE':
------------------------
Win32::OLE->LastError()
The LastError() class method returns the last recorded OLE
error. This is a dual value like the $! variable: in a numeric
context it returns the error number and in a string context it
returns the error message.
-----------------------
I guess the solution is therefore to force the return in "string context".
I have the feeling I should know how to do that ... but it eludes me for the
moment, at least.
I know a way to force $! into numeric context:
F:\>perl -e "open(RD, \"not_exist.txt\") or die $!*1"
2 at -e line 1.
Whereas, to get $! in string context it's just:
F:\>perl -e "open(RD, \"not_exist.txt\") or die $!"
No such file or directory at -e line 1.
Hopefully someone else can provide a *useful* answer :-)
Cheers,
Rob