(我实际上正在使用 Ektron CMS,并且正在使用Widgets
,这是用户控件的一个非常简单的扩展)。
问题:我有一个包含许多小部件的网页。如果这些小部件之一发生异常,页面将停止并且用户会收到服务器错误。我想在小部件中有未处理的异常来记录异常,停止显示该小部件并允许页面继续。
例如,您在每个页面上都有一个天气小部件,它通过网络服务获取数据。如果 Web 服务向您发送格式错误的 XML,您希望该站点仍然可用。
可能的解决方案:
计划 A)在每个小部件中,将 init 或显示函数的内容包装在 Try-Catch 语句中。
计划 B)创建一个扩展 IWidget 的新 IRobustWidget 接口,并在其中执行 Try-Catch。
这两个选项对我来说似乎有点“肮脏”,因为我已经读过通用catch (exception)
语句有点反模式。我倾向于 B 计划,因为这似乎更加模块化。
- 我错过了其他选择吗?
- 在这方面通用 Try-Catch 可以吗?