try catch不是用來處理無法預期的錯誤的,MSDN有說明
http://goo.gl/oYodhJ 奇怪不知為何很多人都有原po這種觀念,我還看過有人把每一個function的內容都用try包起來,每一個喔,更扯的是他的catch裡面什麼都沒做,等於出現exception時完全沒有訊息,使用者連反映都沒機會如果懷疑自己寫的程式可能會有自己無法預期的錯誤,你要做的事應該是debug或把錯誤變成可以預期的,而不是放著不管,用try包起來就了事把一支「我不知道他有沒有bug,也不知道哪裡會有bug」的程式交出去不覺得怪怪的嗎?