我是异常处理的新手,如果发生意外情况,我不知道在哪里停止我的代码。
我有一个处理命令行参数的程序。我将带有值的参数存储在HashMap中。我有一个名为getAlgortihm的方法,该方法应该从地图上获取算法。例如:参数:-alg shift,该方法返回shift。价值转移是必要的,因为另一种方法使用它来决定下一步要做什么。
public String getAlgorithm() {
return argumentMap.get("-alg");
}
如果没有给出-alg(参数:-alg错误移位),可以退出代码吗?
public String getAlgorithm() {
if (argumentMap.get("-alg") == null){
System.out.println("-alg is not given");
System.exit(1);
}
return argumentMap.get("-alg");
}
还是应该在调用方法的地方抛出异常并处理它?</ p>
public String getAlgorithm() {
if (argumentMap.get("-alg") == null)
throw new NullPointerException("-alg is not given");
return argumentMap.get("-alg");
}
答案 0 :(得分:4)
从函数执行退出是不良的编程习惯。这也使得无法测试这种功能。
在这种情况下,如果函数出错,则应引发异常,然后调用代码可以根据需要对其进行处理。这也使代码可测试,因为您的测试可以调用并期望得到异常,这是错误中的正确行为。
答案 1 :(得分:1)
只需尝试使用适当的错误消息而不是System.exit(1)抛出自定义异常