package J20250718.demo02_exception;

/**
 * @author WanJl
 * @version 1.0
 * @title Demo03
 * @description
 * @create 2025/7/18
 */
public class Demo03 {
    public static void main(String[] args) throws AgeException{
        Person p=new Person();
        //方案一：使用try...catch...finally 检测并处理并且执行必须要执行的代码
        try{
            p.setName("");
        }catch (NameSizeException e){
            //一般我们也可以正常打印错误信息..
            e.printStackTrace();//把异常的错误信息打印到控制台
        }finally {
            System.out.println("我是一定能会被执行的代码........");
        }
        System.out.println("后面的代码要执行.....不能停");

        //方案二：使用try...catch 检测并处理
        try{
            p.setName("");
        }catch (NameSizeException e){
            //一般我们也可以正常打印错误信息..
            System.out.println(e.getMessage());//返回详细的信息
            System.out.println(e.toString());//返回简要的信息
        }
        //方案三：使用try...finally  只检测并且执行必须要执行的代码，不做任何处理，还是抛出
        try{
            p.setAge(-3);
        }finally {
            System.out.println("我一定会被执行....");
        }

//        try{
//            int[] arr={1,2,3};
//            System.out.println(arr[3]);
//        }catch (ArrayIndexOutOfBoundsException e){
//            //e.printStackTrace();//打印错误信息
//            //System.out.println(e.getMessage());
//            System.out.println(e.toString());
//        }

    }
}
