[Zope-dev] bare exceptions

Leonardo Rochael Almeida leo@hiper.com.br
04 Oct 2002 18:06:38 -0300


On Fri, 2002-10-04 at 17:58, Leonardo Rochael Almeida wrote:
> On Fri, 2002-10-04 at 16:37, Leonardo Rochael Almeida wrote:
> > 
> > I'm testing a fix for the TALES case along the lines of what Casey
> > sugested and will report back with results.
> > 
> 
> And here it is. [...]
> 

BTW, the _nocatch that I patched had literal string 'Redirect' in it.
Now considering that exception catching is done by the 'is' operator (or
by isinstance(), in case of object instances) isn't it possible, or even
likely that the 'except self._nocatch:' in PageTemplates/TALES.py
wouldn't be able to catch other 'Redirect's?

> --- lib/python/Products/PageTemplates/Expressions.py-orig       2002-10-04 17:26:31.000000000 +0000
> +++ lib/python/Products/PageTemplates/Expressions.py    2002-10-04 17:26:38.000000000 +0000
> @@ -24,6 +24,7 @@
>       TALESError, Undefined, Default, _parse_expr
>  from string import strip, split, join, replace, lstrip
>  from Acquisition import aq_base, aq_inner, aq_parent
> +from ZODB.POSException import ConflictError
>  
>  
>  _engine = None
> @@ -33,7 +34,7 @@
>          from PathIterator import Iterator
>          _engine = Engine(Iterator)
>          installHandlers(_engine)
> -        _engine._nocatch = (TALESError, 'Redirect')
> +        _engine._nocatch = (TALESError, 'Redirect', ConflictError)
>      return _engine
>  
>  def installHandlers(engine):
-- 
Ideas don't stay in some minds very long because they don't like
solitary confinement.