Re: [問題] 請問exception能用if else取代嗎?

看板Programming作者 (好人超)時間12年前 (2011/08/16 10:09), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串2/5 (看更多)
※ 引述《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

08/16 10:13, , 1F
我以為我在C#板...orz
08/16 10:13, 1F

08/16 10:14, , 2F
不懂語法 但我懂您的意思 非常謝謝!
08/16 10:14, 2F

08/16 10:35, , 3F
fun()==-1在unix programming很常見
08/16 10:35, 3F

08/16 10:36, , 4F
很多系統提供的函式庫出錯時會回來-1
08/16 10:36, 4F

08/16 10:36, , 5F
然後把errno設回某個值,perror函式就是
08/16 10:36, 5F

08/16 10:37, , 6F
print出前面的errno代表的意思是什麼錯誤
08/16 10:37, 6F

08/17 10:47, , 7F
原來如此 感謝lmr大
08/17 10:47, 7F
文章代碼(AID): #1EIT5LIF (Programming)
討論串 (同標題文章)
文章代碼(AID): #1EIT5LIF (Programming)