DataInput in = new DataInputStream(System.in);
System.out.println("What is your name");
String name = in.readLine();
Ошибка говорит об ошибке «Необработанное исключение IO». Что случилось с этим кодом?получение ввода в исключение java throws
DataInput in = new DataInputStream(System.in);
System.out.println("What is your name");
String name = in.readLine();
Ошибка говорит об ошибке «Необработанное исключение IO». Что случилось с этим кодом?получение ввода в исключение java throws
Unhandled IO Исключение
либо поймать IOException
или объявить его бросить, readLine()
заявляет, что он может бросить это исключение, так что ваш код должен обрабатывать/выбросить это
Этот метод 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
}
.
.
}
Для получения более подробной информации читайте эту оракула статью Exceptions
Вы должны окружать вызов 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
.
Почему метод взаимодействия с консолью выдает исключение? –
@WinCoder, если при чтении потока возникает ошибка ввода-вывода, будет выдано 'IOException', с доступными деталями в объекте исключения. – Laf
Может быть любое количество причин. В конечном счете, это не имеет значения, поскольку, поскольку метод объявлен как «throws IOException», вам необходимо, так или иначе, обработать исключение, будь то его ловить или объявить ваш метод «throws IOException» (или некоторые суперкласс «IOException») – StormeHawke
ReadLine() броски IOException, которое проверяется исключение должно быть либо выброшен или обрабатываются во время компиляции см Oracle documentation
'readLine' бросает проверяемое исключение – Reimeus
проверяемое исключение? –
@WinCoder Я дал краткое объяснение проверенного и непроверенного исключения [здесь] (http://stackoverflow.com/questions/8423700/how-to-create-a-custom-exception-type-in-java/8423743#8423743). – Laf