Given:
import java.io.IOException;
public class Y {
public static void main(String[] args) {
try {
doSomething();
}
catch (RuntimeException e) {
System.out.println(e);
}
}
static void doSomething() {
if (Math.random() > 0.5) throw new IOException();
throw new RuntimeException();
}
}
Which two actions, used independently, will permit this class to compile?
A.
Adding throws IOException to the main() method signature
B.
Adding throws IOException to the doSoomething() method signature
C.
Adding throws IOException to the main() method signature and to the dosomething() method
D.
Adding throws IOException to the dosomething() method signature and changing the catch
argument to IOException
E.
Adding throws IOException to the main() method signature and changing the catch argument to
IOException
Explanation:
The IOException must be caught or be declared to be thrown.
We must add a throws exception to the doSomething () method signature (static void doSomething()
throws IOException).
Then we can either add the same throws IOException to the main method (public static void
main(String[] args) throws IOException), or change the catch statement in main to IOException.
The correct answer is CD
???