假设,我有一个方法:
private void someMethod() {
try {
//Do something here
}
catch (NullPointerException ex) {
System.out.println("error");
}
}
现在,我想在其他地方使用这个方法:
private void newMethod() {
someMethod();
JOptionPane.showMessageDialog(null, "Exception didn't occur");
}
现在,我希望如果 someMethod()
中发生异常,那么 newMethod()
将不会进一步推进,我的意思是,JOptionPane
在这种情况下将不会显示消息。
最好的方法是什么?我找到了一种方法,在 someMethod()
的 catch block 中抛出另一个 NullPointerException
,然后从 newMethod()
处理它。下面的代码演示了:
private void someMethod() {
try {
//Do something here
}
catch (NullPointerException ex) {
System.out.println("error");
throw new NullPointerException("error");
}
}
private void newMethod() {
try {
someMethod();
JOptionPane.showMessageDialog(null, "Exception didn't occur");
}
catch (NullPointerException ex) {
System.out.println("error");
}
}
但是,通过这种方法,我在处理其他情况时遇到了一些困难。我想有更好的方法可以实现这一目标。无论如何谢谢。
最佳答案
您不需要在 someMethod
中处理异常。相反,您可以在此方法的 throws
子句中声明异常(如果它是已检查的异常)并让 newMethod
处理它。
private void someMethod() throws SomeCheckedException {
//Do something here
}
在 NullPointerException 的情况下,您不需要执行上述操作,因为它是一个未经检查的异常。不要在 someMethod
中捕获它,而是在 newMethod
中使用 try-catch。
关于java - 如何从方法中正确处理异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51758595/