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

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

4

4 回答 4

4

未处理的 IO 异常

捕获IOException或声明它抛出,readLine()声明它可以抛出这个异常,所以你的代码需要处理/抛出它

于 2013-09-11T16:32:54.727 回答
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 ()方法已被弃用,您应该使用 aBufferedReader代替。

于 2013-09-11T16:33:23.230 回答
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 文章异常

于 2013-09-11T16:33:17.707 回答
1

readLine() throws IOException 这是检查异常应在编译时抛出或处理,请参阅Oracle 文档

于 2013-09-11T16:35:22.803 回答