Roe*_*rel 2 c# coding-style try-catch
一般来说,我想创建一个代码,使一个调用成为一个类的执行函数,可能会抛出异常.我的问题是我应该设置类,我应该在try/catch或out方面从中提取值吗?
选项A:
neededValue V;
try
{
MyClass C = new MyClass();
C.SomeParam = XXX;
C.Execute();
V = C.SomeParam2;
}
catch
{
//Clean up...
//Log...
//Throw new exception
}
Run Code Online (Sandbox Code Playgroud)
选项B:
neededValue V;
MyClass C = new MyClass();
C.SomeParam = XXX;
try
{
C.Execute();
}
catch
{
//Clean up...
//Log...
//Throw new exception
}
V = C.SomeParam2;
Run Code Online (Sandbox Code Playgroud)
我知道两者都会奏效,但哪个更好更容易阅读?
Dav*_*ras 11
嘿那些不是同一个东西,在第一种情况下V = C.SomeParam2;永远不会在异常的情况下执行,而在第二种情况下它将永远执行.
更重要的是,你的catch块使用的例子是非常错误的,总是将异常对象放在catch之后,并使用日志记录框架记录已经发生的事情,然后如果可以的话,做出反应并处理异常,并且只有在它有意义的情况下,或抛出它或根本不捕获它,你的调用代码将捕获它.