这是布局if(){try {} catch {}}的更好方法吗?

时间:2014-05-08 01:30:55

标签: c# mysql if-statement try-catch

我有一个布局,当我尝试对MySQL进行特定类型的查询(插入,更新或选择)时

Method()
{
    Connect();

    if ( i == 1)
    {
        try 
        {
            // Query Db...
        }
        catch {}
        finally 
        {
            // Close Connection.
        }
    }
    else if ( i == 2)
    {
        // More try/catch...
    }
}

但是我想知道这种方式是否更好?

Method()
{
    Connect();
    try
    {
        if ( i == 1)
        {
            // Query Db...
        }
        else if (i == 2)
        {
            // Query Db...
        }
    }
    catch { }
    finally
    {
        // Close Connection
    }
}

这些或其他方面是否存在任何真正的差异或好处?

2 个答案:

答案 0 :(得分:1)

第二个更好,因为你有if / else if个语句,只会执行其中一个语句,并且可能会抛出异常。所以,将语句放入try/catch更合乎逻辑。在这种情况下,我看不到使用第一个版本到第二个版本的任何优势。您的第二个代码片段使用较少的代码执行相同的工作。

但是,如果要在每个语句上处理不同的异常,则必须使用不同的try / catch语句。

答案 1 :(得分:1)

第二种方法更好。

如果您打算使用多个if / else if,那么隔离一个方法中// Query db部分中的代码是个不错的主意,这样您就不会必须重复你的代码。然后,您可以向查询传递此方法的参数。