[問題] 為何輸出輸入需要拋出IOException異常?

作者: ppgame (虎紋蜜瓜)   2022-02-05 12:05:52
想請問各位
為何在進行Input、Output的輸入輸出時
都要拋出異常才能運行呢?
碰到每份教材都說進行IO程式碼的時候
要不就拋出IOException,要不就try...catch...finally處理
拋出異常不是程式碼運行中出錯,為何繞過錯誤順利運行才拋出
為何IO正常運行也得要先拋出異常才行呢?
關於這個拋出有什麼具體的解釋來說明必要性嗎?
作者: lycantrope (阿寬)   2022-02-05 13:00:00
RuntimeException(unchekced) vs Checked Exception
作者: ssccg (23)   2022-02-05 16:48:00
throw Exception和(method) throws Exception意思不一樣前者才是拋出例外,後者是標示說(方法)「可能會」拋出例外當你用到一個標示為throws IOException的方法,要不就是完全不處理,那整段程式碼包含IO方法就是「可能會」拋出例外所以要在你的方法也標示throws IOException否則就是要寫try-catch,一旦真的有例外被拋出,你程式會把它接住處理掉不再往上層拋,你的整段程式碼不可能會拋出該例外,那自然就不用標示另外你可能還誤會一點,當選擇不處理,標throws Exception一旦例外發生,你的程式也會中斷在IO方法那行,並不會正常運行繞過錯誤,而是真的出錯了一樓說的RuntimeException是compiler不會強制要求你要標示throws ,但例外的運行機制還是一樣如上
作者: JustinHere (良葛格)   2022-02-16 20:32:00
參考〈犯錯並不可恥〉的部份:https://openhome.cc/Gossip/JavaEssence/

Links booklink

Contact Us: admin [ a t ] ucptt.com