看板 Programming 關於我們 聯絡資訊
※ 引述《poopoo888888 (阿川)》之銘言: : 大家好 小弟是程式新手 : 最近在學習上遇到了一個觀念問題 : 就是exception的用處 : 我知道它用來解決例外狀況 : 可是這樣的功能 不能用一連串的if、else if、else來處理掉嗎? : 平時寫code也會用if.. else來確保一些變數內容的正確性不是嗎? : 還是說exception的確完全可用if else取代 : 但是用exception有其他方便的地方? : 煩請版上各位大大解惑了 謝謝! 以前沒有 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 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.184.77
james732:我以為我在C#板...orz 114.35.184.77 08/16 10:13
poopoo888888:不懂語法 但我懂您的意思 非常謝謝! 61.231.25.104 08/16 10:14
lmr3796:fun()==-1在unix programming很常見 140.112.217.3 08/16 10:35
lmr3796:很多系統提供的函式庫出錯時會回來-1 140.112.217.3 08/16 10:36
lmr3796:然後把errno設回某個值,perror函式就是 140.112.217.3 08/16 10:36
lmr3796:print出前面的errno代表的意思是什麼錯誤 140.112.217.3 08/16 10:37
poopoo888888:原來如此 感謝lmr大218.166.198.121 08/17 10:47