读控制台输入: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未关闭?

+0

Java应该如何知道在这个特殊用例中'IOException'不能被抛出?事实上并非如此,但即使它没有办法知道。 'readLine'被声明为抛出一个'IOException'。 – 2014-09-12 23:30:26

+0

我的意思是,在我可能抛出此异常的情况下,我应该记住任何常见情况。就像在阅读文件之前一样,尝试检查它是否存在以避免发生异常。类似的东西。 – urbaindepuce 2014-09-12 23:56:19

那么这是一个在java中“重”的话题。

现在大多数java程序员都同意,检查异常是愚蠢和多余的,不应该存在。

就你的情况而言,如果它关闭会怎样?编译器不知道程序何时运行,也不知道他要运行的环境。

如果运行该程序的当前用户没有写入控制台的权限该怎么办?

我可以继续前进,但我认为你明白了。

我同意David Limkys。

Class IOException表示发生某种I/O异常。 该类是由失败或中断的I/O操作产生的常规异常类。