gpt4 book ai didi

java.lang.NullPointerException 和返回码

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:47 26 4
gpt4 key购买 nike

我正在从 bash 运行一些 java 二进制文件,例如:

run_me.sh

$JAVA_HOME/bin/java -Djava.library.path=path1/libs/opencv/lib -jar path2/bin/application.jar
echo "Exit code: "$?

但是在应用程序内部我得到了 java.lang.NullPointerException,但是返回代码是 0,但是我需要一些非零退出代码来从 bash 中理解应用程序失败。

处理此类情况的正确方法是什么?

更新:

这是“嵌套”try catch block 的示例,当我在 inner_package_class 中抛出异常时返回代码为 0。那么从 inner_package_class.method1() 获取异常的正确方法是什么?

public static void main(String[] args) {

try {
inner_package_class.method1();
System.out.printf("After inner method!\n");
} catch (Throwable t) {
System.exit(1);
}
}

public class inner_package_class {

public static void method1() {

System.out.printf("From inner method!\n");

try
{
throw new Exception("Some exception 2.");
} catch (Throwable t) {

}

}
}

更新 1:这按预期工作(返回非零退出代码)。

public class inner_package_class {

public static void method1() throws Exception {
System.out.printf("From inner method!\n");

throw new Exception("Some exception 2.");
}
}

最佳答案

您可以在 main 方法周围添加一个 try-catch-block 并使用

System.exit(1)

当你捕获一个 Throwable 时

public static void main(String[] args) {
try {
... // your original code
} catch (Throwable t) {
// log the exception
t.printStacktrace(); // or use your logging framework
System.exit(1);
}
}

关于java.lang.NullPointerException 和返回码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831024/

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