我在实用程序类中有一个静态方法,它为字段赋值。
我的方法的缩减版本是:
public static void assignValue(String field, String valueToAssign){
...
//code to do assign
}
如果有错误我正在抛出异常但是我不确定这是否是正确的方法,因为我在循环中调用assignValue
并且我希望循环继续,即使存在异常。因此可能抛出许多异常
for(int i = 0; i < assignmentList.size(); i++){
try{
assignValue(assignmentList.get(i).fieldName, assignmentList.get(i).fieldValue);
}catch(AssignmentFailedException e){
errorlist.add(e.getMessage());
}
}
}
如果assignValue
返回错误消息而不是异常,会更好吗?然后我可以存储错误并在列表完成时抛出异常
for(int i = 0; i < assignmentList.size(); i++){
String errorMessage = assignValue(assignmentList.get(i).fieldName, assignmentList.get(i).fieldValue);
if(errorMessage != ""){
errorlist.add(errorMessage);
}
}
如果我选择错误消息方法,我应该重命名该方法以让用户知道将返回错误消息吗?
答案 0 :(得分:0)
抛出错误或异常并不是特别有效,因为将控制流传递给异常处理程序需要时间。如果可以,尽量避免创建和抛出新的。您甚至可以做一些简单的事情,例如找到assignValue失败的情况,使用条件(而不是异常)将它们分开并打印出有关发生的事情的消息。
答案 1 :(得分:0)
如果抛出异常,则不能轻易忽略,而返回代码可以。另一方面,返回代码在处理“预期”错误时更容易处理,并且返回代码处理起来更便宜(尽管没有错误发生时的开销实际上可能高于异常)。
每个都有其优点。