下列语句中第二个语句S2出现了一个异常,那么try{ S1; S2; S3;}catch(ExceptionType e1){}catch(ExceptionType e2){}S4;
问题1:S3会执行吗? 2:如果异常未被捕获,S4会被执行吗? 3:如果catch子句捕获了异常,S4会执行吗?请说明原因.多谢!
引用5楼话:2既然异常没被捕获 S4为什么不执行呢?这是因为try/catch没有捕捉到发生的异常,则把该异常提交给他的上级处理,由上级捕捉.如果还没有捕捉到,再提交,知道给他的顶层线程,如还不能结束此线程.
说来说去 我们只是第2点不一样那只有等版主来裁决了
s4是在try块外面的,所以不论是否发生异常都是会执行的,除非在处理异常时将程序结束。在try块里面,无论哪一条语句发生异常,都是会直接跳转到catch里面进行异常处理如果在try块里面没有发生异常,则顺序执行。