Java 不使用try-catch处理异常

Java 不使用try-catch处理异常,java,Java,假设我们有一个方法(不是main),它的主体中有一段代码: if (a > b) { throw new IllegalArgumentException("Fail!"); } 它是否等同于尝试用catch方法处理异常或在签名中包含抛出?如果抛出异常,则需要捕获它,或者需要向方法中添加抛出 但我认为您感到困惑,因为这是您正在抛出的RuntimeException。运行时异常不需要由try-catch块处理。因此,它不是=有一个尝试捕捉,因为它不需要一个 因此,您实际上是在问检查

假设我们有一个方法(不是main),它的主体中有一段代码:

if (a > b) {
    throw new IllegalArgumentException("Fail!");
}

它是否等同于尝试用catch方法处理异常或在签名中包含抛出?

如果抛出异常,则需要捕获它,或者需要向方法中添加抛出

但我认为您感到困惑,因为这是您正在抛出的RuntimeException。运行时异常不需要由try-catch块处理。因此,它不是=有一个尝试捕捉,因为它不需要一个


因此,您实际上是在问检查异常和未检查异常之间的区别。

Java中有两种异常:检查异常和未检查异常

当抛出选中的异常时,方法签名必须添加一个抛出声明。调用代码应该在try-catch中包含它

当抛出未检查的异常时,方法签名不应添加抛出声明。调用代码没有义务在try-catch中包含它

如何区分这两种例外情况?未经检查的异常不会扩展RuntimeException


IllegalArgumentException属于未检查的异常。

最好包含一个try-catch,并处理出现异常时要执行的操作


但是按照您编写它的方式,它只会层叠起来,直到遇到try-catch或处理异常的东西。

这与try-catch处理或抛出完全不同


这里,您的方法抛出一个
IllegalArgumentException
,必须在方法定义中使用throws作为
throws-illegargumentexception
处理,或者此特定方法的调用方必须使用try-catch来处理此方法引发的illegargumentexception。

您是否询问此代码是否等同于未处理任何错误的
try
-
catch
例外情况是,创建一个新的并抛出它。然后调用方必须处理该异常。因此,在某种程度上,这就像在函数方法中抛出异常一样,对吗?我认为您需要阅读异常的基础知识。。。我在这里没有看到一个明确的问题,我感觉您甚至不知道自己在问什么。因此,我们不只是忽略运行时异常,而是让它在这里显示消息。是吗?您可以捕获运行时异常以显示消息。您可以将其捕获为try{}catch(RuntimeExeption e){},也可以捕获异常e,因为异常是它的超类