2013-03-12 26 views
2

在Delphi中,我有一個例程層次結構。例程'A'調用'B'調用'C'調用'D'。 'D'進行一些檢查,並且遇到某種類型的錯誤,可能是異常,可能只是一個邏輯錯誤。無論如何,當'D'遇到錯誤時,是否有控制權返回到'A'而沒有'D'返回'C'檢查的'失敗'碼,其返回失敗碼'B' '檢查,等...?德爾福如何退出到頂級例程錯誤

感謝

GS

+5

如果提高在d異常並有一個嘗試 - 除了塊,你可以捕捉它。您可以引發T_D_Exception,以便您可以在A中識別它。 – kobik 2013-03-12 12:53:12

回答

2

正好有兩種方法可以做到你想要什麼:

  1. 返回一個錯誤/狀態代碼,並且調用堆棧上的每個功能檢查代碼。
  2. 引發異常並在高層處理它。

你不希望使用選項1,使葉片選項2.

+0

選項2它是....感謝 – user1009073 2013-03-12 12:58:25

+0

請注意,您現在選擇了必須遵守的「錯誤傳播方法」:請勿永遠引入另一個嘗試/ B或C除外,除非它重新引發異常。如果你的系統變大了,忘記這一點很容易;-) – 2013-03-13 08:18:22