在java中获取输入会引发异常

时间:2013-09-11 16:31:35

标签: java

DataInput in = new DataInputStream(System.in);
System.out.println("What is your name");
String name = in.readLine();

错误显示“未处理的IO异常”。这段代码出了什么问题?

4 个答案:

答案 0 :(得分:4)

  

未处理的IO异常

捕获IOException或声明它抛出,readLine()声明它可能抛出此异常,因此您的代码需要处理/抛出它

答案 1 :(得分:2)

您必须使用in.readLine ()围绕try/catch的来电。

DataInput in = new DataInputStream(System.in);
System.out.println("What is your name");

try {
    String name = in.readLine();
} catch (IOException ioex) {
    // Handle exception accordingly
}

或者您可以在方法签名中添加trows IOException子句,这意味着调用方法必须处理异常(使用try/catch块)。

根据Javadoc entry,不推荐使用readLine ()方法,而应使用BufferedReader代替。

答案 2 :(得分:1)

此方法readLine()抛出IOException,这是一个已检查的异常。所以你有两个选项来捕捉并处理它和/或在方法声明中添加throws关键字

示例:

public void throwsMethod() throws IOException{
  DataInput in = new DataInputStream(System.in);
  System.out.println("What is your name");
  String name = in.readLine();
  .
  .
}

public void handleMethod(){
  DataInput in = new DataInputStream(System.in);
  System.out.println("What is your name");
  String name=null;
  try{
    name = in.readLine();
  }catch(IOException){
   //do something here
  }
  .
  .
}

有关更多信息,请阅读此oracle文章Exceptions

答案 3 :(得分:1)

readLine()抛出IOException,检查异常应该在编译时抛出或处理,请参阅Oracle documentation