C# 管理异常

C# 管理异常,c#,asp.net-mvc,try-catch,C#,Asp.net Mvc,Try Catch,可能重复: 我用ASP.NETMVC建立了一个网站。在内部函数中,我针对db等处理逻辑。在内部,我使用try-catch处理意外异常 因为我需要了解异常以将消息返回给客户端,所以我还需要在调用内部函数的控制器中使用try-catch。这对性能有很大影响吗 在我的站点中,处理异常的最佳方法是什么?每次尝试捕获异常都会带来巨大的成本。理想情况下,您应该只对真正的异常使用try-catch。如果您使用它来返回消息(作为正常工作流程的一部分),它将对您的性能产生影响(这实际上是一种糟糕的做法) 例如:

可能重复:

我用ASP.NETMVC建立了一个网站。在内部函数中,我针对db等处理逻辑。在内部,我使用try-catch处理意外异常

因为我需要了解异常以将消息返回给客户端,所以我还需要在调用内部函数的控制器中使用try-catch。这对性能有很大影响吗


在我的站点中,处理异常的最佳方法是什么?

每次尝试捕获异常都会带来巨大的成本。理想情况下,您应该只对真正的异常使用try-catch。如果您使用它来返回消息(作为正常工作流程的一部分),它将对您的性能产生影响(这实际上是一种糟糕的做法)

例如:

  • 您需要尝试捕获任何外部依赖项:数据库连接, Web服务,wcf。。。您也可以使用小子句来实现这一点

  • 不需要尝试捕捉你可以控制的东西
    逻辑。例如,用户名和密码字符串.Empty(您可以
    验证输入数据,不依赖try-catch)

如果您不打算控制异常或采取行动,请不要捕获并让上层处理异常。采取行动的一个很好的例子是在finally子句上释放资源,在catch上重新引用异常。这会影响性能,但也会留下未释放的资源

异常管理策略在大型项目中非常重要。在一个简单的应用程序中,这并不是什么大事,但是如果您将要收到巨大的负载,那么您应该仔细考虑谁将负责处理异常