在这个简单的程序中,为什么我必须处理异常?
public static void main (String args[ ]) throws IOException
{
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Insert something : ");
System.out.println("You inserted : "+in.readLine());
}
最佳答案
从标准输入读取不太可能导致任何类型的 IOException。但是,BufferedReader 并不知道这一点,它假设它包装的任何东西都会抛出 IOException 而它只是传递它。我会考虑改用 java.util.Scanner
类,以避免 BufferedReader 在这里检查异常的烦恼。
JVM 将在程序终止时为您处理关闭标准输入,因此关闭读取器应该不是问题,除非您最终可能需要刷新 BufferedReader 以获取其所有内容。这是更喜欢 Scanner 的另一个原因。
对于一个小程序,让 main 方法抛出异常可能很好,这些异常将被写入控制台(具体来说,是 stderr)。只要那是你想要的行为,在这里抛出 IOException 就可以了。在现实生活中,程序可以从 shell 脚本执行,shell 脚本可以将程序的输出重定向到一个文件,这样程序抛出的任何内容都会被记录下来。
关于java - java中BufferReader的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23270513/