-5

我总是想知道我在我的应用程序的哪个级别编写try-catch

达尔?缓存?BL?用户界面逻辑?

如果我写日志并重新抛出它

我应该在每个函数中使用 try-catch 吗?

aswuming 任何功能都可能有我没想到的异常

4

2 回答 2

1

这要看情况。在 UI 层,我在 Application_Error 中全局捕获所有错误,并相应地处理这些错误。然后我才尝试捕获我不想冒泡到 UI 并导致重定向到通用错误页面的错误。这对我报告大多数(如果不是全部)错误非常有效。

有些人处理错误的方式不同;他们将在业务层捕获错误,然后记录并从 BLL 返回它们,或者记录并重新抛出一般错误。例如,查看Enterprise Library Exception 块如何处理错误。

您甚至可以使用 PostSharp 之类的 AOP 库来附加到您想要处理错误的所有对象,或者也可以使用 MVC 的异常过滤来处理错误。

于 2013-02-06T16:02:43.650 回答
0

我个人倾向于使用 try-finally 而不是 try-catch 块(除了一些外部数据源调用)

我为代码的端点保留 try-catch,在那里我可以记录错误堆栈,并在必要时处理错误消息。

附带说明一下,一定要打电话throw;,以免吞下任何异常。

于 2013-02-06T16:03:09.263 回答