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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)