很多帖子告诉我try-catch太丑了 不要写 要少写! 但是不得不承认Java离不开try-catch
明确一下观点:
1.对于错误进行异常处理是不负责任的(所谓错误即本不该发生,程序员却让它发生了 一般指:传入空指针,数组越界,除数为零),这个时候用断言或者什么也不做比较好。因为处理了之后问题依然存在,所以保证代码正确性是解决这个问题的关键。
2.尽量明确异常类别,不要一个Exception全部包括。
性能分析:
'''
public class testOne {
@Test
public void test1() {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("0");
list.add("4");//省略很多测试数据
try {
for (String i: list) {
int num = Integer.parseInt(i);
num = 12 / num;
System.out.println(num);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void test2() {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("0");
list.add("4");//省略很多测试数据
for (String i: list) {
try {
int num = Integer.parseInt(i);
num = 12/num;
System.out.println(num);
} catch (Exception e) {
e.printStackTrace();
}
}
}
'''
结果:
test1:
java.lang.ArithmeticException: / by zero
at TryCatch.testOne.test1(testOne.java:24)
12-----
6-----
test2:
java.lang.ArithmeticException: / by zero
at TryCatch.testOne.test2(testOne.java:46)
12-----
6-----
3-----
效率:
不catch时:耗时是一样的
出现异常时:根据需要的数据结果进行选择
建议:尽量少在try中声明变量,较少的代码放置到try中 效率会更高
网友评论