难以阅读的格式化try..catch..finally块?

Ale*_*lex 6 c# formatting try-catch-finally

你如何格式化try..catch.finally块?特别是当它只包含少量代码时,它会使所有内容都受到影响,并且在我看来代码变得难以理解和难看.

如:

try
{
     MyService service = new Service();
     service.DoSomething();
     return something;
}
catch (Exception ex)
{
     LogSomething();
     return somethingElse;
}
finally
{
     MarkAsComplete();
     service.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

这7行代码变成了16行混乱.

有关更好的try..catch ..最终格式化的任何建议?

Bri*_*sio 6

实际上,这对我来说非常好.如果您的实际代码看起来很像这样,那么我真的不会担心它.发生的事情非常清楚.

如果您的实际代码更复杂,那么请考虑将块分解为命名良好的方法.


Car*_*erg 5

你可以使用一个using块而不是一个显式Dispose(),否则你在处理它之前必须检查null,using块为你做.不幸的是它确实增加了嵌套=/

try
{
     using(MyService service = new MyService()) 
     {
        service.DoSomething();
        return something;
     }
}
catch (SpecificException ex)
{
     LogSomething(ex);
     return somethingElse;
}
finally
{
     MarkAsComplete();
}
Run Code Online (Sandbox Code Playgroud)