public class TryTest {
private static String[] arrayStr=new String[5];
/**
* @param args
*/
public static String getElemtsInArray(){
int i=0;
try{
while(true){
System.out.println(arrayStr
[i++]);
}
}catch(ArrayIndexOutOfBoundsException e){
}
return "";
}
public static void main(String[] args) {
arrayStr[0]="a";
arrayStr[1]="b";
arrayStr[2]="c";
arrayStr[3]="d";
arrayStr[4]="e";
getElemtsInArray();
System.out.println("44");
}
}
这样的代码是很白痴的,其实数组不会越界,只要你别用无限循环。你
非要用异常去停止循环的行为是很无语的。
for(int i=0;i<arrayStr.length;i++){
System.out.println(arrayStr[i]);
}
该这么写就不会越界啦。
用JVM的异常处理来判断错误,性能是很不好的。对数组的循环,现在
的JVM是对他他们进行了代码优化的。所以放心写那种经典的遍历代码
吧。
一句经典的话:异常只是用在不正常的条件下,永远不应该用在正常流
程的控制。
所以我们架构师在设计API的时候:一个设计良好的API不应该强迫它的
客户为了正常的控制流程而使用异常。
比如以下就是iterator经典迭代模式:
for(Iterator i=collection.iterator();i.hasNext()){
Foo foo=(Foo)i.next();
}
这个模式也是被优化过的,希望大家都这么写。
只针对不正常的条件才使用异常
最新推荐文章于 2022-02-09 21:01:51 发布