如下2段代码
public void test1()
{
while(true)
{
try
{
Thread.sleep(30*60*1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void test2()
{
try
{
while(true)
{
Thread.sleep(30*60*1000);
}
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
test1是将try catch放在了循环内,test2是将try catch放在了循环个。
二者的区别是如果test2中循环内容抛出异常的话,就直接跳出了循环,而test1在执行中抛出异常会继续循环。
至于二者选择哪种方式更好就要看你循环的内容了,①如果是为了计算一个结果的话,其中一个遇到异常那么即使继续计算后面的,最后的结果也不会正确,那么我们就需要按test2的方式编码;②如果是一个服务器线程维持一直处理其它线程产生的数据,为了保证系统的稳定性,就必须按test1的方式来编码。
另外有些人喜欢比较性能,我觉得没必要比较性能。如果需求是第②种情况没的选,如果是第①种情况,try catch写在外面,既美观,又易懂,性能肯定不比放在里面差。
版权声明:本文为lihb018原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。