读控制台输入:IOException异常
问题描述:
我创建了一个方法来读取控制台输入的整数读控制台输入:IOException异常
public static Integer readInteger() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
return Integer.parseInt(reader.readLine());
} catch (NumberFormatException e) {
return null;
}
}
我必须包括throws IOException
但时可能被一个IOException只要抛出这种情况下System.in未关闭?
答
那么这是一个在java中“重”的话题。
现在大多数java程序员都同意,检查异常是愚蠢和多余的,不应该存在。
就你的情况而言,如果它关闭会怎样?编译器不知道程序何时运行,也不知道他要运行的环境。
如果运行该程序的当前用户没有写入控制台的权限该怎么办?
我可以继续前进,但我认为你明白了。
答
我同意David Limkys。
Class IOException表示发生某种I/O异常。 该类是由失败或中断的I/O操作产生的常规异常类。
Java应该如何知道在这个特殊用例中'IOException'不能被抛出?事实上并非如此,但即使它没有办法知道。 'readLine'被声明为抛出一个'IOException'。 – 2014-09-12 23:30:26
我的意思是,在我可能抛出此异常的情况下,我应该记住任何常见情况。就像在阅读文件之前一样,尝试检查它是否存在以避免发生异常。类似的东西。 – urbaindepuce 2014-09-12 23:56:19