Suppose the following code:
public static void somMethod() throws IOException {
try {
// some code that can throw an IOException and no other checked exceptions
} catch (IOException e) {
// some stuff here -- no exception thrown in this block
}
}
someMethod throws an IOException, and no other checked exception, and handles that exception itself.
What exactly
throws IOException
in its declaration is bringing in? From what I know, it is making it possible for the methods calling someMethod() handle that IOException themselves.
is anything else happening here?
If the catch block doesn't throw
IOException
, thethrows IOException
part in the method signature is not necessary. And also, every time thesomeMethod()
is invoked, there has to be provided acatch
block for a possible exception that actually never occurs.