您的位置:首页 > 编程语言 > Java开发

Java语言异常处理学习笔记

2013-04-22 21:00 676 查看
学习过java的都知道异常处理的框架:



它的执行过程一般分为两条线:

1.try语句块中没有异常,则正常执行try语句块,catch和finally中的语句不被执行。

2.try语句中有异常,则执行到异常的那句代码后立马跳到catch语句块去匹配,匹配到对应的Exception之后进入到相应的语句块中去执行。

3.finally语句块中的代码通常总是会执行。

下面写几段很相似的代码:

public class TryCatch {

 public static void main(String[]  args) {

  try{

   int i = 1/0;

  } catch(Exception e) {

   System.out.println("exception");

  } finally {

   System.out.println("finally");

  }

 }

}

运行结果:



跟上面描述的一样,try中发现异常,先走catch,然后走finally

public class TryCatch {

 public static void main(String[]  args) {

  try{

   int i = 1/0;

   System.exit(-1);

  } catch(Exception e) {

   System.out.println("exception");

  } finally {

   System.out.println("finally");

  }

 }

}

运行结果:



这说明异常发生时之后的代码是不会执行的,否则会出现下面的结果

public class TryCatch {

 public static void main(String[]  args) {

  try{

   int i = 1/1;

   System.exit(-1);

  } catch(Exception e) {

   System.out.println("exception");

  } finally {

   System.out.println("finally");

  }

 }

}

运行结果:



如果try语句块中没有异常的话,代码中有退出程序的语句的话finally语句块不会被执行,直接退出程序

public class TryCatch {

 public static void main(String[]  args) {

  try{

   int i = 1/1;

  } catch(Exception e) {

   System.out.println("exception");

  } finally {

   System.out.println("finally");

  }

 }

}

运行结果:



try语句块中没有异常同时没有退出程序语句,则finally语句块依然要被执行

public class TryCatch {

 public static void main(String[]  args) {

  try{

   int i = 1/0;

  } catch(Exception e) {

   System.out.println("exception");

   System.exit(-1);

  } finally {

   System.out.println("finally");

  }

 }

}

运行结果:



如果catch语句块中出现退出程序语句,则finally语句块不会被执行

综上,一个简单的异常处理机制也是有很多好玩的东西值得去探索的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 异常处理