在进行代码编写的时候我们其实是不能预料到所有的可能出现的结果的因为实际使用的用户他是不知道我们的实现逻辑的所以呢,他们的操作也是离奇的怪的,所以我们是不能控制用户输入怎样的操作,及时是用户输入了错误的操作我们也要能进行友好的提示之类的东西这样我们的代码才能更加的健壮和可读性更好一点,这就是我们编码人追求的东西,简单明了,易操作。今天我们使用try catch 结构来进行异常的捕获和处理。
try{ } catch { }
其实不是他的最好看的样子,其实他最美的样子才是:
try{ } catch { } finally{ }
这才是他最美的时间。也是我们最常用的格式。要是你感觉你的代码啃能在这个地方可能出问题那么,你就可以使用try { }catch { }finally { }进行异常的捕获然后在进行处理。其实他的执行书序也是很有规律的,我们只有在自己感觉会出现问题的代码块中进行try { } catch { },这样呢,也就是说只有我们的代码在出现异常的时候才会去执行catch { }块里的代码,要是我们的代码没有异常呢,那是最号的事情,那就是我们的代码henOK啦,但是呢要注意finally{ }模块里的所有情况下都是执行的哦,除了几个很极端的问题。下面我们看一下这个结构的执行顺序,上代码:
/** * Created by luyangli on 15-10-1. */ public class TryCatchTest { public static void main(String[] args) { TryCatCh tryCatCh = new TryCatCh(); tryCatCh.tryCatchTestOne(); tryCatCh.tryCatchTestTwo(); } }
import com.google.common.collect.Lists; import java.util.List; /** * Created by luyangli on 15-10-1. */ public class TryCatCh { /** * TryCatch 初探究 */ public void tryCatchTestOne() { List<Integer> list = Lists.newArrayList(); for (int i = 0; i < 10; i++) { list.add(i); } for (Integer integer : list) { try { if (integer == 4) { throw new Exception("异常测试"); } else { System.out.println(integer); } } catch (Exception e) { System.out.println(e); } finally { System.out.println("trycatch 最后都会执行哦"); } } } public void tryCatchTestTwo() { List<Integer> list = Lists.newArrayList(); try { for (int i = 0; i < 10; i++) { list.add(i); } for (Integer integer : list) { if (integer == 4) { throw new Exception("异常测试"); } else { System.out.println(integer); } } } catch (Exception e) { System.out.println(e); } finally { System.out.println("trycatch 最后都会执行哦"); } } }
我们能先分析以下这个语句的执行结果:
第一个函数的调用的时候我们执行到第四次的时候抛出一个异常来,他在等于4的时候就不进行打印了,但是呢他之后的数据会继续打印出来也就0 1 2 3 5 6 7 8 9,这是因为我们进行了异常的处理,这样我们之后的情况不受影响。而第二个呢,只能是0 1 2 3 为什么呢,当然是没有处理了,同学们你们看清了,第二个的try catch是加载总体的循环之外的哦。我们来看一下代码的执行结果把:
0 trycatch 最后都会执行哦 1 trycatch 最后都会执行哦 2 trycatch 最后都会执行哦 3 trycatch 最后都会执行哦 java.lang.Exception: 异常测试 trycatch 最后都会执行哦 5 trycatch 最后都会执行哦 6 trycatch 最后都会执行哦 7 trycatch 最后都会执行哦 8 trycatch 最后都会执行哦 9 trycatch 最后都会执行哦 0 1 2 3 java.lang.Exception: 异常测试 trycatch 最后都会执行哦
当然注意一下就是,finally里的结果是都会执行哦。
怎么样,try catch 很有用把,快动手试试把。