как бросить IOException? - PullRequest
6 голосов
/ 15 марта 2012
public class ThrowException {
    public static void main(String[] args) {
        try {
            foo();
        }
        catch(Exception e) {
             if (e instanceof IOException) {
                 System.out.println("Completed!");
             }
          }
    }
    static void foo() {
        // what should I write here to get an exception?
    }
}

Привет! Я только начал изучать исключения и должен поймать ожидание, поэтому, пожалуйста, кто-нибудь может дать мне решение? Я был бы очень благодарен. Спасибо!

Ответы [ 7 ]

18 голосов
/ 15 марта 2012
static void foo() throws IOException {
    throw new IOException("your message");
}
6 голосов
/ 15 марта 2012
try {
        throw new IOException();
    } catch(IOException e) {
         System.out.println("Completed!");
    }
1 голос
/ 02 февраля 2017

Пожалуйста, попробуйте следующий код:

throw new IOException("Message");
1 голос
/ 15 марта 2012

Если цель состоит в том, чтобы выбросить исключение из метода foo(), вам необходимо объявить его следующим образом:

public void foo() throws IOException{
    \\do stuff
    throw new IOException("message");
}

Тогда в вашем основном:

public static void main(String[] args){
    try{
        foo();
    } catch (IOException e){
        System.out.println("Completed!");
    }
}

Примечаниечто, если не объявлено, что foo генерирует IOException, попытка его перехватить приведет к ошибке компилятора.Кодирование с использованием catch (Exception e) и instanceof предотвратит ошибку компилятора, но не является обязательным.

1 голос
/ 15 марта 2012

Я только начал изучать исключения и мне нужно поймать исключение

Чтобы сгенерировать исключение

throw new IOException("Something happened")

Чтобы поймать это исключение, лучше не использовать Exceptionпотому что это очень универсально, вместо этого, поймайте конкретное исключение, которое вы знаете, как обрабатывать:

try {
  //code that can generate exception...
}catch( IOException io ) {
  // I know how to handle this...
}
1 голос
/ 15 марта 2012
throw new IOException("Test");
0 голосов
/ 15 марта 2012

Может быть, это помогает ...

Обратите внимание на более чистый способ отловить исключения в приведенном ниже примере - вам не нужен e instanceof IOException.

public static void foo() throws IOException {
    // some code here, when something goes wrong, you might do:
    throw new IOException("error message");
}

public static void main(String[] args) {
    try {
        foo();
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...