Aaron
Aaron

Reputation: 1016

Why Use FileNotFoundException When Covered by IOException

What is the purpose of catching a FileNotFound and IOException when the FileNotFoundException is covered by IOException?

Examples:

try {
    pref.load(new FileInputStream(file.getAbsolutePath()));
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

as opposed to:

try {
    pref.load(new FileInputStream(file.getAbsolutePath()));
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Is it simply to enable different code to be executed if a FileNotFoundException is thrown? Or is there a different reason?

EDIT: What are a few examples of what an IOException could be thrown for? (Besides a FileNotFoundException)

Upvotes: 2

Views: 5727

Answers (2)

Singa Selva Sankar M
Singa Selva Sankar M

Reputation: 105

It has to, because you assigning the task for the particular FileNotFound Exception error. If you do as IOException, user may not get the right information what went wrong in there. so doing in separate way, user come to know exactly what happening in the code.

Upvotes: 0

Chase
Chase

Reputation: 1431

It allows you to specifically handle that case. Perhaps your application needs to do something specific when a file is not found. Such as notify the user that a file was not found, rather then just a generic error.

So basically, yes, it allows different code to be executed specifically when a FileNotFoundException is thrown.

Upvotes: 5

Related Questions