我有一个布局,当我尝试对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
}
}
这些或其他方面是否存在任何真正的差异或好处?
答案 0 :(得分:1)
第二个更好,因为你有if
/ else if
个语句,只会执行其中一个语句,并且可能会抛出异常。所以,将语句放入try/catch
更合乎逻辑。在这种情况下,我看不到使用第一个版本到第二个版本的任何优势。您的第二个代码片段使用较少的代码执行相同的工作。
但是,如果要在每个语句上处理不同的异常,则必须使用不同的try
/ catch
语句。
答案 1 :(得分:1)
第二种方法更好。
如果您打算使用多个if / else if
,那么隔离一个方法中// Query db
部分中的代码是个不错的主意,这样您就不会必须重复你的代码。然后,您可以向查询传递此方法的参数。