如果条件或尝试阻止

时间:2012-10-29 17:53:41

标签: c# .net

哪一个更好用?

if (condition)
{
    flagCheck = true;

    //Service layer call - code.

    flagCheck = false;
}

OR

if (condition)
{
    flagCheck = true;

    try
    {
       //Service layer call - code.
    }
    finally
    {
        flagCheck = false;
    }
}

这两种方法有什么区别?是否存在可以优先使用其中一种的情况?

2 个答案:

答案 0 :(得分:8)

在第一种情况下,如果flagCheck引发异常,true仍为// Service layer call - code,而在第二种情况下flagCheckfalse设置为// Service layer call - code { {1}}无论是否抛出异常。

这两种情况都不比其他情况好;选择能满足你需要的那个。

答案 1 :(得分:0)

try块意味着您希望在允许程序崩溃之前执行需要处理的dangerous操作。通常,代替if的{​​{1}}语句仅用于运行时异常。 I.E. NullReferenceException