[Zope] error_type in Python Script?
Jim Gallacher
jgallach@albedo.net
Thu, 25 Jul 2002 10:30:19 -0400
Hi Kyler,
On Wed, 24 Jul 2002 11:46:41 -0500
Kyler Laird <Kyler@Lairds.com> wrote:
> Within an except: block, how do I find the type of
> exception that was raised? In plain Python, it is
> sys.exc_type. In DTML, it's error_type. I do not
> see how to get it in a Python Script.
>
> I looked for the answer on the Web with no joy. A
> pointer to where I should have looked will be
> appreciated.
>
> Thank you.
>
> --kyler
>
I just went through this same frustration a few days ago. Dieter
suggested checking the README tab for PythonScripts.
<quote>
>From the README.txt:
The easiest way to make modules available to Python scripts on
your site is to create a new directory in your Products directory
containing an "__init__.py" file. At Zope startup time, this
"product" will be imported, and any module assertions you make
in the __init__.py will take effect. Here's how to do it:
o In your Products directory (either in lib/python of your
Zope installation or in the root of your Zope install,
depending on your deployment model), create a new directory
with a name like "GlobalModules".
o In the new directory, create a file named "__init__.py".
o Edit the __init__.py file, and add calls to the 'allow_module'
function (located in the Products.PythonScripts.Utility module),
passing the names of modules to be enabled for use by scripts.
o Restart your Zope server. After restarting, the modules you enabled
in your custom product will be available to Python scripts.
</quote>
Here is my __init__.py file:
# Global module assertions for Python scripts
from Products.PythonScripts.Utility import allow_module
allow_module('sys.exc_info')
You can now access the error_type and error_value from a python script
error_type = sys.exc_info()[0]
error_value = sys.exc_info()[1]
It still seems to me there should be a standard way to do this within
Zope but this worked for me in a pinch.
Jim Gallacher
~