java中不使用try/catch如何添加使用抛出异常的方法? [重复]

问题描述 投票:0回答:5

有时当

JDK
声明一个方法时,例如
Integer.parseInt(String s)
它会抛出一个
NumberFormatException
,但是当调用该方法时你不需要try和catch,我如何在我自己的代码中做到这一点?

java exception
5个回答
2
投票

不太清楚您到底在问什么 - 未经检查的异常或如何避免 try-catch-finalize 块。


未经检查的异常

如果您对方法如何抛出异常而不声明抛出异常(在主体之前)感兴趣,那么请注意,Java 编程语言不需要方法来捕获或指定 unchecked 异常 ("RuntimeException", "Error “,及其子类)。

相反,您始终必须处理(或声明抛出)所有其他类型的异常。


避免 try-catch-finalize

但是,如果您想知道如何避免

try-catch-finalize
块,那么您可以通过声明抛出异常的方法来向调用者抛出异常,如下所示:

[access-modifier] return-type methodName() throws Exception {
    ...
};

2
投票

在方法声明后使用“throws”子句。例如:

public static void main(String[] args) throws IOException { }


0
投票

基本上有两种例外情况。在 Java 中检查和取消检查。所有从 RuntimeException 派生的异常都未被检测,您不必捕获这些异常。

因此,如果您创建一个扩展 RuntimeException 的自己的异常,则不必捕获它。还要检查现有的,因为它们通常已经满足您的需求。就像 IllegalStateException 或 IllegalArgumentException 一样。


0
投票
  1. 1)要在Java中创建自己的异常,您需要扩展 您想要从 Java 中的 Exception 类创建的类。 2)然后, 您可以使用 throw 关键字抛出自己的异常,其中 你想写你想通过覆盖它来显示的错误 构造函数或 Exception 类中的 getMessage 方法 你创建的类。 3)如果你不想尝试自己的例外 并捕获,您需要从 RuntimeException 类扩展它。

0
投票

这个不需要try_catch的异常是从RuntimeException扩展而来的,而不是Exception类。

您可以像这样创建自己的 RuntimeException:

public class CustomException extends RuntimeException {

    public CustomException(String msg) {
        super(msg);
    }

}

在这里,我给您留下了一个链接,其中包含有关不同异常以及如何处理它们的更多信息: https://howtodoinjava.com/java/exception-handling/checked-vs-unchecked-exceptions-in-java/

© www.soinside.com 2019 - 2024. All rights reserved.