我目前正在学习如何正确执行自定义异常,我偶然发现了一个问题。每当我尝试使用抛出此自定义异常的类的对象时,我的 IDE 调试器(我使用的是 IntelliJ idea)会显示“未处理的异常:InsertExceptionName()”。代码以简化的方式看起来像这样。在这种情况下,如果随机生成的数字
public class main {
public static void main(String[] args) {
double x=Math.random();
operation op=new operation();
op.execute(x);
}
}
-
public class operation {
public operation() {
}
public double execute(double x) throws RandomWeirdException {
if(x<0.5) {
throw new RandomWeirdException("<0.5");
}
return x;
}
}
-
public class RandomWeirdException extends Exception{
public RandomWeirdException() {
super();
}
public RandomWeirdException(String message) {
super(message);
}
}
“返回”异常是什么意思?当抛出异常时,它会在调用堆栈中冒泡。
在这种情况下你没有处理它。它达到main
因此你有一个未处理的异常。
如果你想处理异常,你可以使用try-catch
堵塞。最好是周边main
在这种情况下。
try {
// Code that might throw
// an exception.
} catch (Exception e) {
// Handle it.
}
另一种解决方案是指定main
抛出一个“RandomWeirdException
“, 并不是catch
首先。
public static void main(String[] args) throws RandomWeirdException { ... }
最好只让函数throw
,除非你能合理地处理特殊情况。
如果你只是catch
为了捕获异常情况而不做任何有意义的事情,有时相当于隐藏错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)