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 IOExceptionpart in the method signature is not necessary. And also, every time thesomeMethod()is invoked, there has to be provided acatchblock for a possible exception that actually never occurs.