我正在爲映射程序MapInfo Pro編寫一個自定義的.Net SDK,mapinfo只公開了兩種使用COM的方法void Do(string cmd)
和string Eval(string cmd)
。當你使用這些方法之一併且你做了一些invaild時,它會返回一個帶有錯誤信息的COMException,並且我從MapInfo得到錯誤代碼。因此,例如錯誤消息是這樣的:爲很多不同的錯誤代碼創建異常類
418 "Table not found."
現在我想扔某種意義上滿異常,而隨後的只是一個數字和消息的人要趕然後異常使用if
塊檢查什麼錯誤,他們說他們只想抓住什麼,並做一些充分的事情。類似於TableNotFoundException
。
最大的問題是,目前有1999
可能的錯誤消息,現在我不想爲這些錯誤的每個人的異常類。
SDK的想法是人們使用我的對象和方法,而不是Do
和Eval
(如果他們願意,他們可以使用它們)。
我應該,
- 無處不在我的SDK,我稱之爲
Do
和Eval
使用嘗試捕捉,然後檢查錯誤代碼並拋出更多的東西從那裏意滿了,因爲我知道我應該得到什麼樣的錯誤。
或
- 我在
Do
和Eval
是神查找列表somekind的當COMException
拋出時查找錯誤代碼,並從那裏拋出meaningfull錯誤?這意味着我不必包裝在嘗試catch塊每次調用Do
和Eval
(有大量話費)
位的一個棘手的事情來解釋,所以我希望人們能理解它。
謝謝。
++他說什麼,特別是關於一個小異常層次的部分。 – Dustman