首页 > 解决方案 > 为什么我们需要 Java 中的 throw 关键字?

问题描述

这个答案中,提供的代码是:

void greet(String name) {
    if (name == null) {
        throw new IllegalArgumentException("Cannot greet null");
    }
    System.out.println("Hello, " + name);
}

我在所有学习“投掷”关键字的网站上都看到了类似的例子。每当我看到这样的例子时,对我来说没有意义的是为什么一个人根本不打印:“Cannot greet null”而不是抛出异常

问题:

  1. 是否有更好的throw关键字效用示例?(我刚从高中毕业,只知道高中级别的 Java 编程,所以请避免复杂的例子)

  2. 在给定的示例中,为什么用户选择抛出异常而不是简单地打印错误?

标签: javaexception-handling

解决方案


现在是时候修改 Java 中异常处理的概念了。

首先什么是异常,每当在执行代码行时出现一些错误或说问题,它被称为异常。

例如,如果一个人将某物除以 0,那么它将给出一个异常,因为计算机无法处理未定义的实体。

另一个例子是,当您声明了一个 Scanner 以获取整数输入时,但用户输入了一个字母,因此它也会导致异常。

这里我们进行异常处理,这意味着我们将以不会导致程序关闭的方式处理异常,那些已经包含在 try 和 catch 语句中的特定行将无法正常工作,但其他行将被执行。

现在,如果我们创建了一个方法来做某事,让我们假设打印一行,并且在打印该行时发生了异常,在这里我们可以做两件事来处理异常发生的地方或抛出它。

如果我们在那个地方处理异常就可以了,如果我们抛出它,那么我们必须在调用该方法的地方捕获它。

现在有两种类型的异常 1)我们称之为未检查异常的运行时异常 2)我们称之为已检查异常的编译时异常

这两种异常都可以在类级别和方法级别进行处理,我们还可以做一件事链式异常处理。这意味着一个类将向其他类抛出异常,依此类推。


推荐阅读