我一直认为使用“if”语句比捕获异常更好(从性能角度来看)。例如,执行以下操作:
User u = Users.getUser("Michael Jordan");
if(u!=null)
System.out.println(u.getAge());
对比。
User u = Users.getUser("Michael Jordan");
try{
System.out.println(u.getAge());
}catch(Exception e){
//Do something with the exception
}
如果我们进行基准测试,很明显第一段代码比第二段要快。这是我一直以来的想法。但是,昨天有个人告诉我这样的话:
“你有没有考虑过,当你的程序被执行成千上万次时会发生什么?每次执行到你的‘if’语句时,都会有一点(虽然很小,但还是有)性能损耗。但是使用异常就不会出现这种情况,因为它永远不会发生。”
换句话说:执行千万次“if”语句与捕获一个异常相比。
我认为这个观点有道理,但没有任何证据。
你能帮帮我吗?
谢谢!