一个DNN模块中的异常会阻止处理页面上的所有其他模块

时间:2012-01-30 14:24:45

标签: c# dotnetnuke dotnetnuke-module

我正在研究DNN 6.0网站上的一般问题:一个DNN模块中的无法处理的异常会影响处理页面上的所有其他模块。 示例:

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

因此,当用户按下Module1.button时,我们看到错误而不是Module1,而Module2不可见。

是否可以在一个地方捕获所有这些Module1异常,让DNN处理页面上的其他模块? (我知道最简单/最简单的方法是在button.onclick中编写try / catch块,但是我不能在我们创建的所有模块中实现这样的方法,因为它需要很长时间。)

1 个答案:

答案 0 :(得分:5)

你提出了正确答案。

实施try / catch块并使用以下功能

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

此示例代码:

try
{
    //BLAH
}
catch (Exception exc) //Module failed to load
{
    Exceptions.ProcessModuleLoadException(this, exc);
}