java中异常抛出后代码是否会继续执行


为了回答这个问题,我编写了几段代码测试了一下,结果如下:

 代码1: throw new Exception( "参数越界" );
   System.out.println( "异常后" ); //编译错误
代码2:
try {
   throw new Exception( "参数越界" );
} catch (Exception e) {
   e.printStackTrace();
}
System.out.println( "异常后" ); //可以执行
 
代码3:
if ( true ) {
   throw new Exception( "参数越界" );
}
System.out.println( "异常后" ); //抛出异常,不会执行
 

若一段代码前有异常抛出,并且这个异常没有被捕获,这段代码将产生编译时错误「无法访问的语句」。如代码1

若一段代码前有异常抛出,并且这个异常被try...catch所捕获,若此时catch语句中没有抛出新的异常,则这段代码能够被执行,否则,同第1条。如代码2

若在一个条件语句中抛出异常,则程序能被编译,但后面的语句不会被执行。如代码3

 

转载自:http://www.jb51.net/article/94027.htm


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM