gpt4 book ai didi

java - 使用try/catch方法获取一个参数,该参数将从java中的方法中产生特定的输出

转载 作者:行者123 更新时间:2023-12-02 03:46:38 27 4
gpt4 key购买 nike

我使用 try/catch 编写了这段代码,我希望它输出以下内容:

A null pointer exception occurred
In the finally block

The length of the string is 1
A number format exception occurred
In the finally block

A null pointer exception occurred
Some type of exception occurred
In the finally block

The length of the string is 1
The value is 5

但由于某种原因,当我调用时,我尝试从主函数调用它,但出现错误,所以我的问题是如何正确从主函数调用该方法以获得上面的输出?

这是我写的方法:

public static void problem2(String s) {
try {
int stringLen = s.length();
System.out.println("The length of the string is " + stringLen);
int i = Integer.parseInt(s);
System.out.println("The value is " + i);
} catch (NumberFormatException e1) {
System.out.println("A number format exception occurred");
} catch (NullPointerException e2) {
System.out.println("A null pointer exception occurred");
} catch (Exception e3) {
System.out.println("Some type of exception occurred");
} finally {
System.out.println("In the finally block");
}
}

最佳答案

假设您将此静态方法放在“TryCatchExample”类中,则以下内容将生成示例 1、2 和 4 的输出。由于您捕获了 NullPointerException,因此代码不会从一个 catch block 传递到下一个 catch block 。此外,你为什么想要这样做?您捕获了更具体的异常,这可能允许向用户提供一些具体的反馈。更一般的 Exception 提供的信息较少,许多人认为这是一个不好的方法。

public static void main(String[] args)
{
TryCatchExample.problem2(null); // prints NPE
TryCatchExample.problem2("A"); // prints numberformat
// no example for both numberformat and npe
TryCatchExample.problem2("5"); // prints lengths & value 5
}

关于java - 使用try/catch方法获取一个参数,该参数将从java中的方法中产生特定的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36236935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com