问题
can you please why error comes in line 13 as unreported exception ,must be caught pr declared to be thrown
class Demo {
public static void main(String args[]) {
try {
int x = 43 / 0;
} catch (ArithmeticException ob) {
throw ob;
}
try {
int x = 43 / 0;
} catch (Exception ob) {
throw ob;
}
Exception ob = new Exception();
throw ob;
// Line 13 unreported exception Exception; must be caught or declared to be thrown
}
}
回答1:
You need to add a throws
to the method that throws exceptions as mentioned before as well as all the methods that call that method
回答2:
At the last line of your code you are throwing an exception but there is nothing handling it. You must do one of two:
- Surround it with a
try/catch
block - Use the
throws
keyword in the method's signature. See this SO question: The throws keyword for exceptions in Java
In addition this question: Why is “throws Exception” necessary when calling a function?
Secondly after adding it the code will compile but when executed will still throw an exception:
Exception in thread "main" java.lang.ArithmeticException: / by zero
Reason is that in the catch
blocks you are re-throwing the exception.
来源:https://stackoverflow.com/questions/44861810/why-i-m-getting-unreported-exception