[问题] 为何输出输入需要抛出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