Java中未处理的异常

我目前正在学习如何正确执行自定义异常的过程,偶然发现了一个问题。每当我尝试利用引发此自定义异常的类的对象时,IDE的调试器(我使用的是IntelliJ想法)都会说“未处理的异常:InsertExceptionName()”。代码以简化的方式看起来像这样。在这种情况下,如果随机生成的数字<0.5,它将返回一个异常,否则返回一个数字,但不会这样做。我想念什么?

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为了在异常情况下不做任何有意义的事情而进行捕获,那等效于有时隐藏一个错误。

以上是 Java中未处理的异常 的全部内容, 来源链接: utcz.com/qa/403218.html

回到顶部