首页 > 其他分享 >异常

异常

时间:2023-02-17 20:12:36浏览次数:25  
标签:return try finally myClass var MyClass 异常

finally

不要在 finally 语句块中使用 return! 当 try 语句和 finally 语句中都有 return 语句时,try 语句块中的 return 语句会被忽略。这是因为 try 语句中的 return 返回值会先被暂存在一个本地变量中,当执行到 finally 语句中的 return 之后,这个本地变量的值就变为了 finally 语句中的 return 返回值。

public class FinallyTest {
    public static void main(String[] args) {
        System.out.println("返回基本类型的try,返回值为:"+basicMethod());//1
        System.out.println("返回基本类型的try finallyReturn(),返回值为:"+basicMethod_finallyReturn());//3

        System.out.println("返回对象类型的try,"+objectMethod());//3
        System.out.println("返回对象类型的try finallyReturn(),"+objectMethod_finallyReturn());//3

        System.out.println("返回对象类型的try catchReturn(),"+objectMethod_catchReturn());//3

    }

    //返回基本类型的try
    public static int basicMethod(){
        int a=100;
        try {
            a = 1;
            return a;
        }catch (Exception e){
            e.printStackTrace();
            a = 2;
            return a;
        }finally {
            a = 3;
        }
    }

    //返回基本类型的try
    public static int basicMethod_finallyReturn(){
        int a=100;
        try {
            a = 1;
            return a;
        }catch (Exception e){
            e.printStackTrace();
            a = 2;
            return a;
        }finally {
            return a = 3;
        }
    }

    //该内部类作为下面objectMethod方法中try返回的类型
    public static class MyClass{
        public  int var;

        @Override
        public String toString() {
            return "返回值为:"+var;
        }
    }

    //返回对象类型的try
    public static MyClass objectMethod(){
        MyClass myClass = new MyClass();
        try {
            myClass.var = 1;
            return myClass;
        }catch (Exception e){
            e.printStackTrace();
            myClass.var = 2;
            return myClass;
        }finally {
            myClass.var = 3;
        }
    }
    //返回对象类型的try
    public static MyClass objectMethod_finallyReturn(){
        MyClass myClass = new MyClass();
        try {
            myClass.var = 1;
            return myClass;
        }catch (Exception e){
            e.printStackTrace();
            myClass.var = 2;
            return myClass;
        }finally {
            myClass.var = 3;
            return myClass;
        }
    }

    //返回对象类型的try
    public static MyClass objectMethod_catchReturn(){
        MyClass myClass = new MyClass();
        try {
            myClass.var = 1;
             int i = 1/0;
            return myClass;
        }catch (Exception e){
            e.printStackTrace();
            myClass.var = 2;
            return myClass;
        }finally {
            myClass.var = 3;
            return myClass;
        }
    }
}

标签:return,try,finally,myClass,var,MyClass,异常
From: https://www.cnblogs.com/haveanicedayfh/p/17131399.html

相关文章

  • SpringMVC11 - 异常处理器 ExceptionResolver
    异常处理器SpringMVC默认使用DefaultHandlerExceptionResolver,因此,会跳转到出现404、405等报错页面基于XML配置的异常处理SpringMVC提供了一个处理控制器方法执行过......
  • mysql主从同步异常修复
    说明mysql集群部署在k8s上,架构是“一主两从”,机房突然断电,导致mysql集群启动之后,发生主从同步异常。主库上查看binlog信息:mysql>showmasterstatus\G;*********......
  • java异常信息打印
    如果你不仅想在日志中查看异常信息,也想把异常信息保存起来作为数据查看,那么你可以这样做 publicvoidprintException(Exceptione){ByteArrayOutputStr......
  • Java-异常
    2023.2.12        2023.2.16使用Mybatis时报异常:  原因:插入了中文字段:  处理:1、设置idea编码格式 2、设置数据字段的编码格式  修......
  • 异常对象的常用方法
    一:获取异常简单的描述信息Stringmsg=exception.getMessage();NullPointerExceptione=newNullPointerException("空指针异常");Stringmsg=e.getMessage();Sy......
  • PYTHON异常
    PYTHON异常异常的捕获基本捕获语法:try:#可能发生错误的代码except:#如果出现异常执行的代码捕获指定异常:except异常类型ase:如果尝试执行......
  • 【MYSQL异常处理】记录一次MYSQL数据库断电无法启动异常,错误提示为 ERROR! The server
    某xx项目,系统一直用着好好的,虽然无客户真实数据,但包含许多现场定制配置数据,结果客户突然把服务器给断电关机了,服务器环境大致如下1服务器环境描述:2centos7三台3其中......
  • 《用 libcurl 实现 HTTP 下载文件,其中设置了超时时间,以便在网络异常时能够快速中止下
    CURLOPT_TIMEOUT选项设置了超时时间为10秒,如果在这个时间内没有下载完成,则会返回一个超时错误,可以在回调函数中进行错误处理。如果网络异常或其他错误,也会在curl_eas......
  • IP服务正常,域名服务异常,报400 badrequest
    IP的情况下,访问接口都正常,使用域名访问,报错400badrequest经确认,ssl配置无问题,证书文件本身无问题最后查出来原因,是域名格式的问题,原域名中包含_,需要修改为-排查过程:1.......
  • 我已经受够了“系统异常”!
    我已经受够了“系统异常”! 作为用户,你有没有这样的经验:用个软件,隔三岔五弹个框:系统异常!作为程序员,你有没有这样的经验:运营同学又屁颠屁颠跑来求助:“用户不能下单了!......