过去一年,我一直在 SharePoint 2007/2010 中开发页面和 Web 部件。我总是在我的代码中加入的一件事是 try/catch 块来处理抛出异常时的错误处理。这样,如果我的 Web 部件损坏,我会在该特定 Web 部件中向用户显示一条很好的错误消息,而不是在页面顶部或整页错误。我对这个过程很好,但我正在寻找关于我使用 try/catch 块的方法的一些输入(据我所知,这可能会影响性能)。
通常,在进行 DB 或 Web 服务调用时,我总是使用 try/catch 块。如果实现了复杂的逻辑(并且我无法测试所有不同的情况),我有时甚至会将我的通用 C# 代码包装在 try/catch 块中。有时,我只是有点偏执,我会用 try/catch 将所有代码包装在整个 Web 部件中。
我能否获得一些关于将 try/catch 块用于一般 C# 开发,特别是 SharePoint 世界中的 C# 开发的反馈?此外,我很想了解如何在开发 SharePoint 解决方案时有效地将 try/catch 嵌入到我的 C# 代码中(是否有更全局的方法来做到这一点?)
提前致谢。
最佳答案
通过 SharePoint 世界中的错误处理,您通常会关注性能。如果您担心性能,您会希望尽可能让异常冒泡。我通常用 try/catch 块包装“入口”方法。例如,asp.net 表单中的事件处理程序、Web 部件、用户控件等。然后当我想抛出自定义异常类型、自定义错误消息等时,我会将代码包装在实用程序、数据访问等中。
不幸的是,我还没有找到一种全局方式来处理 SharePoint 中的错误。我已经为传入“this”和异常对象的 Web 部件执行了 HandleError 实用程序方法。 (WSPBuilder 扩展 web 部件项实际上有一个很好的内置实现。)不过,try/catch 块本身仍然是 web 部件事件处理程序的本地。
关于C# 中的 SharePoint 开发 + 处理错误的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3373567/