因为
IOException是Checked
Exception,应该处理或声明为抛出该异常。相反,
RuntimeException是一个未经检查的异常。您不需要处理或声明它在方法throws子句中抛出(在这里,我的意思是,如果您不处理未经检查的异常,则在语法上是正确的。编译器不会生气)。但是,在某些情况下,您需要处理某些Unchecked
Exception并采取相应的措施。
参考文献:
- JLS-异常的种类和原因
- Oracle异常教程

因为
IOException是Checked
RuntimeException是一个未经检查的异常。您不需要处理或声明它在方法throws子句中抛出(在这里,我的意思是,如果您不处理未经检查的异常,则在语法上是正确的。编译器不会生气)。但是,在某些情况下,您需要处理某些Unchecked
参考文献: