2016-02-19 33 views
0

我試圖改變這段代碼:IntParse到的TryParse

try 
{ 
    recordID = Int64.Parse(SqlHelper.ExecuteScalar(conn, CommandType.Text, sqlString, parms).ToString()); 
} 
catch (Exception ex) 
{ 
    int x = 1; 
} 

成的TryParse代碼。 我需要捕獲(例外)嗎?

+0

以我的經驗,如果你必須問,是的。請確保您正確處理該案件,或者根本不處理該案件。 – Neil

+3

TryParse不會拋出,如果解析失敗,它將返回false **但是** try塊中有比解析更多的東西。所有的數據庫工作也可以拋出異常。目前任何查詢或連接問題都被完全忽略,這似乎是不明智的。 –

回答

0

TryParse方法本身不需要catch子句。 但您的代碼中還有很多其他調用。 如果您在您的數據庫有一個整型字段類型,我建議你直接使用值:

try 
{ 
    recordID = Convert.ToInt64(SqlHelper.ExecuteScalar(conn, CommandType.Text, sqlString, parms)); 
} 
catch (Exception ex) 
{ 
    LogError(ex); 
} 

因爲轉換爲字符串,然後從字符串是額外的工作。