class HelloWorld extends Exception {
HelloWorld(String s) {
System.out.println("helllo" + s);
}
}
class myclass {
void go() throws HelloWorld {
System.out.println("my mom");
}
}
public class ting {
public static void main(String[] args) {
try {
myclass h= new myclass();
h.go();
} catch(HelloWorld e) {
throw new HelloWorld("world");
}
}
}
我读到,我们总是需要声明一个异常,直到我们捕获它。如上所述,我使用自定义异常 HelloWorld
,当我在其他类(即 myclass)中抛出此异常时,我在 main 方法中捕获了此异常。为什么它不起作用?
o/p : ting.java:17: error: unreported exception HelloWorld; must be caught or declared to be thrown
throw new HelloWorld("world");
^
1 error
最佳答案
由于某种原因,您从 catch
block 中抛出异常。
解决方案:
声明您的
main
为抛出HelloWorld
:
public static void main(String[] args) 抛出 HelloWorld
再次用
try-catch
包围它,但这会很奇怪:
catch(HelloWorld e){
try {
throw new HelloWorld("world");
} catch (HelloWorld e1) { }
}
}
注意:您最好为您的异常命名HelloWorldExcption
。
关于java - 我已经捕获了声明并捕获了异常,但仍然存在错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21554323/