3

我正在处理的 DNN 6.0 网站上有一个非常普遍的问题:一个 DNN 模块中的未经处理的异常会影响页面上所有其他模块的处理。例子:

假设我有 DNN 页面,上面有两个模块。Module1 具有 onclick 事件处理程序引发异常的按钮。Module2 只有一些标签文本。

所以当用户按下 Module1.button 我们看到一个错误而不是 Module1 并且 Module2 不可见。

是否可以在一个地方捕获所有此类 Module1 异常并让 DNN 处理页面上的其他模块?(我知道最简单/最简单的方法是在 button.onclick 中编写 try/catch 块,但我无法在我们创建的所有模块中实现这种方法,因为这会花费很多时间。)

4

1 回答 1

5

你提出了正确的答案。

实现 try/catch 块并利用以下函数

  • LogException() - 记录错误,不停止模块加载
  • ProcessModuleLoadException() - 记录错误,停止加载模块

示例代码:

try
{
    //BLAH
}
catch (Exception exc) //Module failed to load
{
    Exceptions.ProcessModuleLoadException(this, exc);
}
于 2012-01-30T14:47:02.887 回答