我从web端传到后台几个参数 a,b,c 然后需要进行转换。既然是转换,那就有可能出现异常。
比如 : 我需要 Integer.parseInt(a); Double.parseDouble(b); c.toString;
我想到两种方式来处理异常:
采用正则先校验一遍,即:
if(!Int正则校验a){提示不能转换Int; return;}
if(!Double正则校验a){提示不能转换成Double; return;}
if(c==null){提示null不能ToString;return}
采用try catch
try {
Integer.parseInt(a); Double.parseDouble(b); c.toString;
}catch(Exception e){
提示输入有误;
return;
}
或者具体点:
try{
Integer.parseInt(a); Double.parseDouble(b); c.toString;
}catch(NumberFormatException){
提示错误;
return;
}catch(NullPointorException){
提示字符串错误;
return;
}
问题:
单个try catch 和单个if比较 肯定if效率高,但是使用if会导致每次必然回去判断一下 综合考虑,当参数数量达到10个20个...的时候,怎么分析效率问题(是根据出错的概率吗)
效率和代码简洁可读,怎么权衡。我可以用最高层的Exception 来进行一次捕获或者写10个if return.
关于效率问题,我觉得 1ms和10ms的差距虽然是10倍,但是从用户使用角度考虑,差距应该是不大的,但我在网上搜了好久,都说使用if 预先判断,到底是基于什么考虑的?