C# 如何在不使用try-catch的情况下使用Using语句捕获并记录异常?
据我所知,Using语句已经内置了Dispose和Try-Catch的实现。所以我想知道一些事情 是否可以使用语句在内部记录异常,而不使用 在语句内部或外部使用try-catch块。如果 不,那么为什么它内置于语句中 嵌套或过度使用try-catch是不可取的,那么为什么这样的模型呢 首选使用C# 如何在不使用try-catch的情况下使用Using语句捕获并记录异常?,c#,.net,exception-handling,try-catch,using,C#,.net,Exception Handling,Try Catch,Using,据我所知,Using语句已经内置了Dispose和Try-Catch的实现。所以我想知道一些事情 是否可以使用语句在内部记录异常,而不使用 在语句内部或外部使用try-catch块。如果 不,那么为什么它内置于语句中 嵌套或过度使用try-catch是不可取的,那么为什么这样的模型呢 首选使用 using (some_resource) { try { } catch
using (some_resource)
{
try
{
}
catch
{
}
finally
{
//my exception logging mechanism
}
}
将成为
try
{
try
{
}
catch
{
}
finally
{
//my exception logging mechanism
}
}
catch
{
}
finally
{
//some_resource.Dispose()
}
using语句涉及try/finally;没有陷阱。但坦率地说,你的担心太过分了;不希望使用多重嵌套和复杂的try/catch/finally,因为:
这使得代码很难阅读
更难的是,大多数人都错了,唉
它经常被误用
这表明你的方法做得太多了
使用时,这不是问题;它使意图非常清晰,没有增加复杂性或顾虑
我只想使用:
using (some_resource) {
try {
// some code
} catch (Exception ex) {
LogIt(ex);
throw;
}
}
using语句涉及try/finally;没有陷阱。但坦率地说,你的担心太过分了;不希望使用多重嵌套和复杂的try/catch/finally,因为:
这使得代码很难阅读
更难的是,大多数人都错了,唉
它经常被误用
这表明你的方法做得太多了
使用时,这不是问题;它使意图非常清晰,没有增加复杂性或顾虑
我只想使用:
using (some_resource) {
try {
// some code
} catch (Exception ex) {
LogIt(ex);
throw;
}
}
使用编译器尝试{}最后{}。见以下问题: 这样做的原因是,无论是否引发异常,都将释放资源。资源处置是using语句的目的 正确的实施方式是:
using(Resource myresource = GetResource())
{
try
{}
catch(Exception e)
{ //Maybe log the exception here when it happens?
}
}
使用编译器尝试{}最后{}。见以下问题: 这样做的原因是,无论是否引发异常,都将释放资源。资源处置是using语句的目的 正确的实施方式是:
using(Resource myresource = GetResource())
{
try
{}
catch(Exception e)
{ //Maybe log the exception here when it happens?
}
}
使用不转换为try-catch,仅try-finally。异常日志记录机制不应该在“catch”中,而不是在“finally”中吗?从何处获得您的首选项?使用不转换为try-catch,仅try-finally。异常日志记录机制不应该在“catch”中吗,不是“最终”?你从哪里得到你的偏好?