java捕获到异常后,异常后的语句不会被执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java捕获到异常后,异常后的语句不会被执行相关的知识,希望对你有一定的参考价值。

其中一段:
if(a>10)
throw new MyException(a);
System.out.println("这是正常退出");
请问如果给出的a>10,抛出了异常后,是不是后面这句System.out.println("这是正常退出");就不会执行了呢?

如果异常中没有finally,那么直接抛出异常,因为抛出异常后实际上就会有“return”结束后面代码的执行。

如果异常中有finally,那么finally里面的内容是可以被继续执行的,执行完之后才会返回。

但最终结果是try大括号后面的内容肯定不会被执行。

举例:

public class Test


public static void main(String args[])

OutputStream os = null;

try

os = new FileOutputStream(new File(""));

catch (IOException e)

System.out.println("被执行1");

catch (Exception e)

System.out.println("被执行2");

finally // 此处不管是否有异常,都会被执行

System.out.println("被执行3");

if (os != null)

try

os.close();

catch (Exception e)

参考技术A 抛出异常后程序执行会终止,然后runtime会从call stack里寻找异常处理程序,进入异常处理的流程,所以之后的正常代码是执行不到的。
参考 http://docs.oracle.com/javase/tutorial/essential/exceptions/definition.html本回答被提问者和网友采纳
参考技术B 问题有歧义你好 需要你的全部代码,如果你想让System.out.println("这是正常退出");执行的话如下

if(a>10)
System.out.println("这是正常退出");
throw new MyException(a);

参考技术C   异常后面的任何语句都执行不到,程序只要有异常就会直接终止运行,后面的所有代码都不会执行 参考技术D 异常发生,要不被trycatch捕获,要不就就立即throw出去,后面的不会执行。

php异常处理

什么是异常,异常就是错误,

异常处理:通常错误的提示信息不会对用户开放,但是用户操作是必须明确是否能够正确的执行,因此我们需要对于可能出现问题的代码内容作出处理,
这个就被称为异常处理。异常处理操作:try...catch...代码块;try当中包含可能出现问题的代码,而用catch来对出现的异常进行捕获;一旦定义好的异常
出现,那么在该异常后的语句被跳过不在执行,而去执行输出catch块中的代码。
在php中,一般是判断是否能正确放回或者获取到需要的对象或数值,如果没有,则使用throw关键字,抛出异常信息。

只有熟练了之后你才会知道哪些地方会出现异常,然后处理异常。
示例代码:

try{
[email protected]_connect(‘localhost‘,‘root‘,‘123456‘);
if(!$link)
throw new Exception(‘无法连接到数据库!!!‘);

echo ‘我的mysql操作‘;

mysql_close($link);
}catch (Exception $ex){
echo $ex->getMessage();
}




以上是关于java捕获到异常后,异常后的语句不会被执行的主要内容,如果未能解决你的问题,请参考以下文章

java抛出异常后程序还会不会往下执行?

JAVA异常处理

Java随笔四---Java异常

php异常处理

Java异常try里面有return,finally代码会执行吗

java学习(18-异常)