【发布时间】:2018-12-12 17:20:38
【问题描述】:
我正在编写一个程序,在该程序中,我使用 BufferedReader 对象从用户那里获取输入,然后在 catch 块中捕获 BufferedReader 对象抛出的 IOException 但是当我在 finally 块中关闭资源时,为什么它说要包围尝试/捕获或声明 IOException
这是程序
public class BufferedReader3 {
public static void main(String[] args){
// TODO Auto-generated method stub
InputStreamReader r=null;
BufferedReader br=null;
String name="";
try
{
r =new InputStreamReader(System.in);
br =new BufferedReader(r);
while(!name.equals("stop"))
{
System.out.println("Enter data: ");
name=br.readLine();
}
System.out.println("data is: "+name);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
br.close();
r.close();
}
}
}
【问题讨论】:
-
try-catchwith resources 会解决这个问题。我认为这个问题与取消引用潜在的空指针有关。只是在这里猜测。
标签: java exception-handling bufferedreader