简体   繁体   中英

how to throw an IOException?

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?
    }
}

Hi! I just started learning exceptions and need to catch an expetion, so please can anybody provide me with a solution? I'd be very grateful. Thanks!

static void foo() throws IOException {
    throw new IOException("your message");
}
try {
        throw new IOException();
    } catch(IOException e) {
         System.out.println("Completed!");
    }

I just started learning exceptions and need to catch an exception

To throw an exception

throw new IOException("Something happened")

To catch this exception is better not use Exception because is to much generic, instead, catch the specific exception that you know how to handle:

try {
  //code that can generate exception...
}catch( IOException io ) {
  // I know how to handle this...
}

If the goal is to throw the exception from the foo() method, you need to declare it as follows:

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

Then in your main:

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

Note that, unless foo is declared to throw an IOException, attempting to catch one will result in a compiler error. Coding it using a catch (Exception e) and an instanceof will prevent the compiler error, but is unnecessary.

请尝试以下代码:

throw new IOException("Message");
throw new IOException("Test");

Maybe this helps...

Note the cleaner way to catch exceptions in the example below - you don't need the 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());
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM