关于throw和finally的异常处理,主方法、子方法的处理

package com.cita.citagui.component;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @ClassName test
 * @Description TODO
 * @Author lilu
 * @Date 2023/5/24 17:32
 * @Param Return
 * @Version 1.0
 **/
public class test {
    public static void main(String[] args) throws Exception {
        try{
             aa();
            System.out.println("3");
        }catch (Exception ex){
            throw new Exception(ex.getMessage());
        }

    }
    public static void aa() throws Exception {
        try {
            String dealdate1 = "2023/05/12";
            Date date = null;
            if(dealdate1.contains("-")){
                date = new SimpleDateFormat("yyyy-MM-dd").parse(dealdate1);//转一下日期格式
            }else{
                date = new SimpleDateFormat("yyyyMMdd").parse(dealdate1);//转一下日期格式
            }
            System.out.println("1");
            String dealdate2 = new SimpleDateFormat("yyyyMMdd").format(date);
            System.out.println(dealdate2);
        }catch (Exception ex){
            //ex.printStackTrace();
            throw new Exception(ex.getMessage());
        }finally {
            System.out.println("5");
        }
    }
}
//如果子方法catch了,则错误抓住,交由他处理,他不throw,则大家相安无事,主方法继续执行(注意不是printStackTrace)
//如果子方法catch了,throw了,则错误汇报,交由主方法处理,主方法catch做throw则后续方法不执行,直接抛出异常,如果主方法不throw,则不报错继续执行
//如果子方法在finally中出现return,则即便throw,也认为是正常返回的结果,不会有异常抛出了。

你可能感兴趣的:(java,jvm,servlet,throw,主方法)