Error handling 如何处理Zope页面模板中的错误

Error handling 如何处理Zope页面模板中的错误,error-handling,plone,zope,template-tal,zpt,Error Handling,Plone,Zope,Template Tal,Zpt,我正在寻找一种处理Zope页面模板错误的好方法。我已经知道的是: <div ... tal:define=... tal:on-error="string:Oops!"> This text will be replaced in case of errors </div> 如果出现错误,将替换此文本 或 如果出现错误,将替换此文本 或 如果出现错误,将替换此文本 但是,可能需要使用更详细的错误处理方法,例如 根据特定权限显示详细信息

我正在寻找一种处理Zope页面模板错误的好方法。我已经知道的是:

<div ... tal:define=...
         tal:on-error="string:Oops!">
  This text will be replaced in case of errors
</div>

如果出现错误,将替换此文本


如果出现错误,将替换此文本


如果出现错误,将替换此文本
但是,可能需要使用更详细的错误处理方法,例如

  • 根据特定权限显示详细信息的步骤
  • 记录和/或向维护人员报告错误
  • 有一种简单的方法来创建一些漂亮的HTML,而不需要在模板中编写大量代码
我看了一下,创建了一个脚本对象,如上面所述(当然,修改了缺少的冒号);但是,它不起作用(我在error=“here/errHandler”上尝试了
,在error=“here/scripts/errHandler”
上尝试了
,并且添加了
*args
**kwargs
,但没有成功)

我试图为这种目的构建一个浏览器(
on error=“here/@@talerror”
),它使用得很好,但似乎没有得到
error
对象

我使用的是Zope2.10.7-final和Plone 3.3(我知道是老版本)

有没有办法将
错误
对象移交给浏览器,或者让脚本对象正常工作


顺便说一句:这不是在模板中加入大量的逻辑——请不要对模板和逻辑说教!我的目标是找出现有模板中的错误,即逻辑的哪一部分(在后台的某个地方,在浏览器中实现)以哪种方式失败。使用错误脚本的文档化方法对我不起作用(可能我遗漏了一个重要部分?),错误处理浏览器显然无法访问错误对象。

您也看过皮肤模板了吗?应尽可能避免使用tal:on error,因为它会吞噬各种异常,包括冲突错误异常,在没有明确错误处理的情况下决不能捕获这些异常。感谢链接。标准版本的
default\u error\u message
处于活动状态,我现在查看了一下。然而,这取代了整个页面,这不是我想要的;有时,可用的回溯很难理解或根本没有用处。
<div ... tal:define=...
         tal:on-error="error/value">
  This text will be replaced in case of errors
</div>
<div ... tal:define=...
         tal:on-error="string:${error/type}: ${error/value}">
  This text will be replaced in case of errors
</div>