try catch不是用来处理无法预期的错误的,MSDN有说明
http://goo.gl/oYodhJ 奇怪不知为何很多人都有原po这种观念,我还看过有人把每一个function的内容都用try包起来,每一个喔,更扯的是他的catch里面什么都没做,等于出现exception时完全没有讯息,使用者连反映都没机会如果怀疑自己写的程式可能会有自己无法预期的错误,你要做的事应该是debug或把错误变成可以预期的,而不是放著不管,用try包起来就了事把一支“我不知道他有没有bug,也不知道哪里会有bug”的程式交出去不觉得怪怪的吗?