黑马程序员技术交流社区

标题: 错误 [打印本页]

作者: 絮缘小默    时间: 2014-3-22 18:04
标题: 错误
使用try catch语句块的问题
当try语句块里产生一个错误,然后捕获,那么错误代码后面的代码是否还会运行?
如果使用throw语句明确引发一个错误呢?

作者: chaos    时间: 2014-3-22 18:20
错误代码后面的代码不运行,直接运行catch里的代码
作者: 我感觉优势很大    时间: 2014-3-22 18:21
你看看这两种情况,是否复合你所说的
  1. class Test

  2. {

  3.    
  4.     public static void main(String args[]){
  5.            
  6.             try{
  7.                     int[] i={1,2,3};
  8.                     System.out.println(i[5]);
  9.             }
  10.             catch(Exception e){
  11.                     System.out.println("in  try-catch");
  12.             }
  13.            
  14.             System.out.println("after try-catch");

  15.            
  16.             error_test();
  17.     }
  18.    
  19.    
  20.     static void error_test(){
  21.             try {
  22.                     int[] i={1,2,3};
  23.                     System.out.println(i[5]);
  24.                 } catch (Exception e) {
  25.                         // TODO: handle exception
  26.                         throw new RuntimeException("出错了");
  27.                 }
  28.            
  29.             System.out.println("after try-catch-throw");
  30.     }

  31. }
复制代码
结果:

QQ截图20140322182137.png (5.5 KB, 下载次数: 54)

QQ截图20140322182137.png

作者: 追逐    时间: 2014-3-22 18:53
捕获到异常后try语句中异常后面的语句是不会执行的。但是如果有finally的话无论是否捕获到异常。finally里面的代码都会执行。如果用throw抛出异常。如果真的有异常,后面的代码就不会执行了。没有的话就会执行
作者: yanzhendong    时间: 2014-3-22 18:55
楼主你好,错误后面的代码是否执行在于你在异常处理程序中是怎么处理的,一般错误代码后面的代码不会执行,但如果是恢复性的异常处理,当异常处理完毕后异常后面的代码可能会执行,请看下面的代码:
  1. public class Demo{
  2. public static void main(String[] args){
  3. int a=0;int b=200;  
  4. while(a++){
  5. try{
  6. System.out.println(a/(b--));
  7. }catch(RuntimeException e){
  8. b=b-1;
  9. }
  10.    
  11. }





  12. }
  13. public static int Demo1(int a,int b)throw RuntimeException{
  14.    if(b==0){
  15.   throw new RuntimeException("除数不能为零");
  16. }


  17. }




  18. }



复制代码

作者: 杨殿生    时间: 2014-3-22 21:27
错误后面的代码是不运行的直接执行catch的语句
使用throw出现错误也不会运行错误代码后面的代码
作者: 何伟超    时间: 2014-3-22 23:54
建议先把异常学完再问这样的问题。
作者: 心?=忐§忑]    时间: 2014-3-23 08:23
错误后面的代码不会执行,使用throw会把代码产生的异常抛出。
作者: muma    时间: 2014-3-23 09:00
建议楼主认真听看老师视频
作者: H-Deka    时间: 2014-3-23 16:49
错误代码后的代码不会执行了,出错后就去找相应的catch,如果找到配对的就执行对应的catch,如果没有对应的catch,就执行finally




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2