看板 Programming 關於我們 聯絡資訊
: 以前沒有 exception 的時候,常常會看到這種程式碼 : (-1這個數值常用在發生錯誤時回傳,而 perror 可以印出錯誤原因) : if (function1(xxx) == -1) { : perror("ERROR: "); : exit(1); : } : if (function2(yyy) == -1) { : perror("ERROR: "); : exit(1); : } : 如果有了 exception : : try : { : function1(xxx); : function2(xxx); : } : catch (Exception e) : { : Console.WriteLine(e.Message); : Console.Exit(1); : } : 程式碼變得比較簡潔、而重覆的程式碼也變少了 : 而且把所有「正常執行」的程式與「錯誤處理」的程式分開 : 對架構更能一目瞭然 : C語言就是完全沒有 exception,全部都要用 if-else 來寫 : 它仍然是很好用的程式語言,不過有的時候真的會覺得很煩...XDD 謝謝這位大大 所以我最後所問「還是說exception的確完全可用if else取代 但是用exception有其他方便的地方?」 這段敘述是對的囉! 但我總覺得我會寫出「用if else除錯」跟「用exception除錯」混雜的程式碼 是不是if else只用來處理合法狀況 其餘的全部交給exception比較好 而不要試圖用if else除錯? 還是有什麼使用這兩者上的時機與訣竅? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.25.104
kdjf:Python_syntax_and_semantics#Exceptions 140.112.245.32 08/16 14:34
kdjf:on wikipedia 140.112.245.32 08/16 14:34
Ross0916:for me exception is like "break" 129.67.176.18 08/16 15:34
aecho:我覺得常常蠻難抉擇的…所以決定旁聽了。XD 219.85.43.30 08/16 19:23
jtmh:其實會用 exception 還有種狀況是:在你本身 218.175.154.99 08/16 22:33
jtmh:的函式裡是無法確定該怎麼處理該狀況的,所以 218.175.154.99 08/16 22:34
jtmh:你必須丟出 exception 給外面 call 你的人處 218.175.154.99 08/16 22:35
jtmh:理才行。 218.175.154.99 08/16 22:35
jtmh:不過以往還未有 exception 機制時也是可用特 218.175.154.99 08/16 22:38
jtmh:殊的回傳值代替就是了。 218.175.154.99 08/16 22:38