我在C#(.NET 2.0)中有一個很大的項目,其中包含由SubSonic生成的非常大的代碼塊。這樣的嘗試是否會造成可怕的表現?由於發現錯誤太多而導致性能不佳?
for (int x = 0; x < identifiers.Count; x++)
{decimal target = 0;
try
{
target = Convert.ToDecimal(assets[x + identifiers.Count * 2]); // target %
}
catch { targetEmpty = true; }}
正在發生的事情是,如果是在傳遞給定的領域是不是可以轉換爲十進制它設置一個標誌,然後沿記錄還用於確定別的東西。
問題是,當我通過30k記錄進行解析時,應用程序逐字地拋出數以萬計的異常。整個過程需要將近10分鐘的時間,而我的總體任務是提高一些時間,如果這是一個糟糕的設計理念,這似乎很容易掛果。
任何想法,將是有益的(是一種,它是一個悲痛的日子)
感謝, 克里斯
嘗試閱讀下面的句子,然後將每個'Ouch!'實例替換爲一個例外並且推斷出你的代碼的效果: 是的,''哎呀!'那裏'''''可以'''''''''' '''哎呀!''小'''''''''''''''''''''' – 2010-04-22 21:24:38
我最近纔開始查看這段代碼......實際上,如果3個字段實際上是小數或者它們是空白/空/非小數,它看起來像有3個類似的測試。然後,如果所有3個標誌字段都爲真,它不會嘗試添加記錄。呃...是的,這很可悲。 – 2010-04-22 21:38:17