c# - 尝试/捕捉 - "Code style"问题

标签 c# coding-style try-catch

一般来说,我想编写一个代码来调用一个可能引发异常的类的 Execute 函数。我的问题是我应该设置这个类,我应该在 try/catch 或外部从中提取值吗?

选项 A:

neededValue V;

try
{
    MyClass C = new MyClass();
    C.SomeParam = XXX;
    C.Execute();
    V = C.SomeParam2;
}
catch
{
    //Clean up...
    //Log...
    //Throw new exception
}

选项 B:

neededValue V;
MyClass C = new MyClass();
C.SomeParam = XXX;

try
{
    C.Execute();
}
catch
{
    //Clean up...
    //Log...
    //Throw new exception
}

V = C.SomeParam2;

我知道两者都可以,但哪个更好、更容易阅读?

最佳答案

嘿,它们不是一回事,在第一种情况下,V = C.SomeParam2; 永远不会在异常情况下执行,而在第二种情况下,它将始终执行。

不仅如此,您使用 catch block 的示例严重错误,始终将异常对象放在 catch 之后,并使用日志记录框架在某处记录发生的事情,然后在出现以下情况时使用react并处理异常你可以,并且只有当它有意义时,或者抛出它或者根本不捕获它,你的调用代码就会捕获它。

关于c# - 尝试/捕捉 - "Code style"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7496087/

相关文章:

c# - 游戏的自定义热键

c# - 使用 C# Entity Framework 在时态表中插入记录

c# - 在这种情况下,组合优于继承?

haskell - 如何使这段代码更紧凑和可读?

c++ - 我可以在 qt Creator 中使用带有 try catch 语句的断点吗?

c# - 在异步方法中显示错误消息的更好方法

c# - 如何删除为正常 I/O 打开的文件?

Javascript悬停效果删除了预定义的样式

Python:如何处理无法正确初始化的类的方法调用?

java - 在什么情况下 finally {} block 不会执行?