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捕获到异常后,异常后的语句不会被执行的主要内容,如果未能解决你的问题,请参考以下文章