Friday, September 07, 2001

Re: 請問在何種狀況下會考慮使用exception?

  就大部分的軟體系統而言,想在程式還沒完成時就知道效率的瓶頸在哪?無異是緣木求魚!

  在應該使用 Exception 時就使用,在程式還沒正確之前,效率再高都是枉然。

  在設計之初,最重要的是程式的高階效率,所謂高階效率,就是要求撰寫易於找出錯誤、易於日後陸續修改、具備高度重複使用性的程式碼。

  程式的架構要清爽、明確且具彈性。才可在未來應付以上這些變局。

  以設計一個函式庫為例,函式庫的設計者知道如何偵測例外,卻無法預知函式庫的使用者要如何處理這個例外,這時就是 Exception 使用的時機了。

  換言之,當你設計的軟體系統可以區分為設計者及使用者時,也就是你在設計給未知使用者使用的軟體時,你就可以在偵測到例外時,將之丟出。而且盡量不要使用傳統上應付這種情形的其他任何方法,如:傳回錯誤代碼等。

  在 C++ 中,你還可以利用 assert 敘述,在這裡建議 assert 敘述使用於內部供軟體設計者偵錯用;而 exception 用於公開的介面部分,供軟體元件使用者例外處理用。──當然啦!這也不是絕對的標準,端看您對自己設計的元件作何假設而定。


※ 引述《AskaLee2 (Aska)》之銘言:

請問各位先進,在何種狀況下使用exception機制最適當??
使用exception必須付出一些效能上與空間上的代價,
應該有某些狀況非常適合使用exception。
Tags: [] [] [] []

0 comments: