java基础之异常——try{}里面有一个return语句,那么紧跟在try后的return语句还会执行吗?什么时候执行,在return前还是后?

会在return中间执行!

try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 return 语句先执行,finally 语句后执行,但 return 并不是让函数马上返回,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行 finally 语句后才真正开始返回!但此时会出现两种情况:

①、如果finally中也有return,则会直接返回并终止程序,函数栈中的return不会被完成!;

②、如果finally中没有return,则在执行完finally中的代码之后,会将函数栈中的try中的return的内容返回并终止程序;

catch同try;

package com.test;

public class Test1 {

public static void main(String[] args) {

try {

System.out.println(new Test1().testname());

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public String testname() throws Exception {

String t = "";

try {

t = "try";

System.out.println("try");

return t;

} catch (Exception e) {

// result = "catch";

t = "catch";

return t;

} finally {

System.out.println("finally");

// return t = "finally";

}

}

}

打印结果如下:try

Finally

try

将finally中的注释放开,打印结果如下:

Try

Finally

finally

结论:finally中的代码肯定会执行,但是会先执行try中的代码,如果try中有return,那么return的东西会先放到函数栈中,然后再执行finally中的代码,

①、如果finally中也有return,则会直接返回并终止程序,函数栈中的return不会被完成!;

②、如果finally中没有return,则在执行完finally中的代码之后,会将函数栈中的try中的return的内容返回并终止程序;

原文地址:https://www.cnblogs.com/ldddd/p/11412290.html

时间: 2024-10-09 02:35:53

java基础之异常——try{}里面有一个return语句,那么紧跟在try后的return语句还会执行吗?什么时候执行,在return前还是后?的相关文章

【Java基础】异常的简单分类与处理

Java中所有的异常都继承自Throwable类,Throwable类的已知子类有Error和Exception. Error是指系统出现的错误,这种错误出现的时候,我们的程序无能为力,所以不需要进行处理. Exception则是在程序中出现的异常,我们通常对这些异常进行处理. Exception有很多的子类,有一类比较特殊,那就是RuntimeException.RuntimeException属于非受检异常,也就是编译器不会对这种异常进行检查,这类异常被允许不用捕捉,也就是不用catch.我

【java基础之异常】死了都要try

目录 1.异常 1.1 异常概念 1.2 异常体系 1.3 异常分类 1.4 异常的产生过程解析 2. 异常的处理 2.1 抛出异常throw 2.2 Objects非空判断 2.3 声明异常throws 2.4 捕获异常try…catch 2.4 finally 代码块 2.5 finally 代码块与return语句 2.6 异常注意事项 3.自定义异常 3.1 概述 3.2 自定义异常练习 4.来!和异常大干一场 @ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM

Java基础笔记-异常

Java中的异常机制: Throwable类是 Java 语言中所有错误或异常的超类.主要包括两个子类: Error和Exception. 一般中要处理的异常是Exception. Java中最常见的处理方式是try catch finally.格式为: try { 需要被检测的异常. } catch(异常类 变量) { 处理异常的代码()处理方式 } finally { 一定会被执行的代码语句 } 一个简单的异常处理代码及有关函数的应用: 1 /* 2 异常:Exception. 3 处理异常

3.3 java基础总结①异常②自定义异常

①异常②自定义异常 一.Java中问题概述一般来说有个2/8原则,一个程序员80% 的精力在处理20%可能发生异常的代码Java中问题分为错误(Error)和异常(Exception) 错误:不能用代码解决的问题,往往是环境或者硬件的问题异常:可通过修改代码或者预处理来解决的不正确情况,称为异常 异常分为编译期异常和运行时异常,如果抛编译异常,语法上调用者必须处理或往上抛:抛运行时异常,调用者可不往上抛 Java里边结束的3中方式:①正常执行完②return返回③发生异常,没有处理,强制结束都是

JAVA基础——常见异常及错误

可以在java中,自己编写几个方法去去还原一下以下一些异常.然后在进行相对应的处理,这样可以在往后编码中遇到类似的问题,可以快速的解决.提高自己的编码效率. NO.1  Java.alng.NullPointerException 这个异常大家肯定都经常遇到,异常的解释是 "程序遇上了空指针 ",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等.对数组操作中出现空指针,很多情况下是一些

05. Java基础之异常

本文参考了以下链接并作出总结与修改: 1.https://www.cnblogs.com/lulipro/p/7504267.html 2.https://www.cnblogs.com/taiwan/p/7073743.html 3.https://blog.csdn.net/chaplinlong/article/details/50983594 一.简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出

黑马程序员-----Java基础:异常和异常处理

------- android培训.java培训.期待与您交流! ---------- 异常概述 异常:就是程序在运行时出现的不正常的情况 异常由来:问题也是现实生活中的一个具体的事物,也可以通过Java的类的形式进行描述,并封装成对象 对于问题的划分:一种是严重的问题.一种是非严重的问题 对于严重的,Java通过Error类进行描述,对于Error一般不编写针对性的代码对其进行处理 对于非严重的,Java通过Exception类进行描述,对于Exception可以使用针对性的处理方式进行处理

黑马程序员-Java基础之异常

异 常:就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信息存在.当出现多属性信息最方便的方式就是将这些信息进行封装.异常就是java按照面向对象的思想将问题进行对象封装.这样就方便于操作问题以及处理问题. 出现的问题有很多种,比如角标越界,空指针等都是.就对这些问题进行分类.而且这些问题都有共性内容比如:每一个问题都有名称,同时还有问题描述的信息,问题出现的位置

Java基础学习 -- 异常

通过例子来理解: package exception; public class ExceptionCatch { private String s = null; public static void main(String[] args) { ExceptionCatch ec = new ExceptionCatch(); try { ec.s.toString(); }catch(Exception e) { System.out.println("Caught exception: &