DataInput in = new DataInputStream(System.in);
System.out.println("What is your name");
String name = in.readLine();
错误显示“未处理的IO异常”。这段代码出了什么问题?
答案 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