问题描述
请教各位,一下代码哪里能优化或者代码风格能优化的地方么,然后给个修改理由,非常感谢,初学java,希望知道哪样的才是工作中写的代码importorg.apache.commons.logging.LogFactory;publicclassAccountClass{privatefinaltransientstaticint[]values=newint[4];publicvoidaddValues(inti,intv){try{if(isOK(i)){values[i]=v;}}catch(ArrayIndexOutOfBoundsExceptione){LogFactory.getLog(getClass()).error("AccountClassindexerror:"+e.getMessage());}catch(Exceptione){LogFactory.getLog(this.getClass()).error("AccountClassexception:"+e.getMessage());}}privatebooleanisOK(intindex)throwsException{booleanb=index<values.length;if(b){returntrue;}returnfalse;}publicstaticvoidmain(String[]args){AccountClassac=newAccountClass();try{for(inti=0;i<values.length;i++){ac.addValues(i,i);}if(values[4]!=4){System.err.println("Badsum");}//Icombinethethreecatchestomulticatch}catch(IllegalArgumentException|ArrayIndexOutOfBoundsException|IllegalStateExceptione){LogFactory.getLog(AccountClass.class).error(e);}}}
解决方案
本帖最后由 ComputerMark 于 2014-08-27 04:16:07 编辑
解决方案二:
privatebooleanisOK(intindex)throwsException{returnindex<values.length;}
解决方案三:
isOK(intindex)不需要throwsException
解决方案四:
引用2楼xuxiaolei的回复:
isOK(intindex)不需要throwsException
感谢感谢,请问什么格式或者其它地方还有需要修改的么
解决方案五:
所有的异常信息都是不需要的,像数组越界这种异常,都是代码写的不健壮导致的,应该避免异常通常捕获检查型异常就可以了,像数组越界这种运行时异常,就不需要捕获了privatefinaltransientstaticint[]values=newint[4];publicvoidaddValues(inti,intv){if(isOK(i)){values[i]=v;}}privatebooleanisOK(intindex){returnindex<values.length;}publicstaticvoidmain(String[]args){AccountClassac=newAccountClass();for(inti=0;i<values.length;i++){ac.addValues(i,i);}if(values[4]!=4){System.err.println("Badsum");}}
解决方案六:
刚才没看代码,只是调整了下代码格式对了最后一行应该是if(values[3]!=4){System.err.println("Badsum");}
解决方案七:
引用5楼magi1201的回复:
刚才没看代码,只是调整了下代码格式对了最后一行应该是if(values[3]!=4){System.err.println("Badsum");}
谢谢谢谢,请问下if(values[3]!=4){System.err.println("Badsum");}
到底是个什么作用?
解决方案八:
引用6楼ComputerMark的回复:
请问下if(values[3]!=4){System.err.println("Badsum");}到底是个什么作用?
这个是你的代码逻辑,没细看代码要做什么