Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5年前关闭。
我有以下二传手:
这是检查传递的参数是否为大于0的整数的好方法吗?
也:
删除了int变量,因为您没有使用它进行比较
删除了try catch-让异常冒出来。如果客户通过了错误的dara,那就是他们的问题
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5年前关闭。
我有以下二传手:
public void setId(String id) {
try{
Integer partnerId = Integer.parseInt(id);
if (partnerId <= 0){
throw new NumberFormatException();
}
} catch(NumberFormatException e){
}
this.id = id;
}
这是检查传递的参数是否为大于0的整数的好方法吗?
最佳答案
不要抛出NumberFormatException异常,因为如果字符串存在格式问题,那就没错-它只是超出范围。抛出的标准且正确的异常是带有消息的IllegalArgumentException。而且,作为一般规则(适用于此处),您不应该感到无所适从,而对此却无能为力。
尝试这个:
public void setId(String id) {
if (Integer.parseInt(id) < 1){
throw new IllegalArgumentException("id must be greater than zero:" id);
}
this.id = id;
}
也:
删除了int变量,因为您没有使用它进行比较
删除了try catch-让异常冒出来。如果客户通过了错误的dara,那就是他们的问题
08-19 07:59