linux java。lang.NullPointerException和返回代码
我正在从bash运行一些java二进制文件,如:
跑过来。嘘
$JAVA_HOME/bin/java -Djava.library.path=path1/libs/opencv/lib -jar path2/bin/application.jar
echo "Exit code: "$?
但在应用程序内部,我得到了java.lang.NullPointerException
,但是返回代码是0,但我需要一些非零的退出代码来从bash理解应用程序失败了
处理此类案件的正确方式是什么
更新:
下面是一个'nested'try-catch块的示例,当我在inner_package_class
中抛出异常时,返回代码为0。那么,从内部包类获取异常的正确方法是什么呢。方法1()
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.");
}
}
# 1 楼答案
您可以在主方法周围添加一个try-catch块,并使用
当你抓到一个被扔掉的
# 2 楼答案
返回代码由系统的exit方法设置:顺便说一句,如果您想在异常情况下返回-1,您可以按如下操作:在主类中,您必须捕获所有可丢弃的内容(因此您将处理所有可能的情况)。这里有一个例子
代码显示了在异常情况下如何返回-1,在成功情况下如何返回0