在C#数据库相关的类中使用和尝试catch?

在C#数据库相关的类中使用和尝试catch?,第1张

概述连接数据库时是否使用关键字catch或处理C#中的异常?或者我应该在使用中的所有数据库方法中使用try catch块?使用try catch是否会创建不必要的代码? using (var db = new ApplicationContext()){ try { /* Query something */ } catch(Exception e) { 连接数据库时是否使用关键字catch或处理C#中的异常?或者我应该在使用中的所有数据库方法中使用try catch块?使用try catch是否会创建不必要的代码?

using (var db = new ApplicationContext()){            try {       /* query something */    } catch(Exception e) {       logger.DeBUG(e);    }}
解决方法

Does using keyword catch or handle exceptions in C# when connecting to a database?

使用在逻辑上等同于try-finally,所以是的,它处理异常,但它不会停止异常. A最终传播异常.

should I use try catch block in all of my database methods insIDe the using?

不可以.尝试捕获应该超出使用范围.这样它将保护资源创造.

Does using try catch create unnecessary code?

我不知道这个问题意味着什么.

你没有问过的一些问题:

Should I catch all exceptions for logging and then fail to re-throw them?

不会.只捕获并吃掉你知道如何处理的异常.如果要记录异常,则在完成日志记录后重新抛出异常;其他代码可能想要处理它们.

What is the correct way to write this code?

分开你的顾虑.你有三个问题:

>处置资源
>记录所有异常
>处理预期的外生异常

每个都应该由一个单独的声明处理:

try // handle exogenous exceptions{     try // log all exceptions   {       using(var foo = new Foo()) // dispose the resource       {           foo.bar();       }   }   catch(Exception x)   {       // All exceptions are logged and re-thrown.       Log(x);       throw;   }}catch(FooException x) {    // FooException is caught and handled}

如果您的目标是仅记录未处理的异常,则反转两个处理程序的嵌套,或使用其他机制,例如appdomain的未处理异常事件处理程序.

总结

以上是内存溢出为你收集整理的在C#数据库相关的类中使用和尝试catch?全部内容,希望文章能够帮你解决在C#数据库相关的类中使用和尝试catch?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1225441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存