обработка незарегистрированных исключений - PullRequest
0 голосов
/ 26 октября 2010

Я попробовал простой код, где пользователь должен ввести число. Если пользователь вводит символ, то я создаю число для выражения. Это отлично работает. Теперь, когда я удаляю блок try catch, он показывает ошибку. Что означает ошибка Код и ошибка следующим образом

import java.io.*;
class execmain
{
    public static void main(String[] args)
    {
        //try
        //{
            int a;
            BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
            a=Integer.parseInt(br.readLine());// ---------error-unreported exception must be caught/declared to be thrown
            System.out.println(a);
        //}
        //catch(IOException e)
        //{
        //System.out.println(e.getMessage());
        //}
    }
}

Почему появляется эта ошибка?

Ответы [ 3 ]

4 голосов
/ 26 октября 2010

Смысл ошибки в том, что ваше приложение не перехватило IOException, которое может быть выдано при попытке прочитать символы из входного потока.IOException - это проверенное исключение, и Java настаивает на том, что проверенные исключения должны быть либо перехвачены, либо объявлены в сигнатуре метода, в который они включены.* метод путем добавления throws IOException.

1 голос
/ 26 октября 2010

Линия:

a=Integer.parseInt(br.readLine());

сгенерирует IOException, потому что br.readLine () выдает это исключение. Java заставит вас либо явно перехватить исключение, например, блок комментированного кода, либо ваш метод должен явно вызвать это исключение, например:

public static void main(String[] args) throws IOException
1 голос
/ 26 октября 2010

readLine() throws IOException, что является проверенным исключением , что означает, что оно должно быть либо поймано, либо должен быть объявлен метод для его выброса. Просто добавьте объявление в ваш основной метод:

public static void main(String[] args) throws IOException

Вы также можете объявить его как throws Exception - для игрушечных / обучающих программ это просто прекрасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...