• Java中的自定义异常


    使用java内置的异常类可以描述在编程时出现的大部分异常情况。初次之外,用户还可以自定义异常。用户自定义异常类,只需要继承Exception类即可。

    在程序中使用自定义异常类,大体可以分为以下步骤:

    1. 创建自定义异常类
    2. 在方法中通过throw关键字抛出异常对象
    3. 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一次操作
    4. 在出现异常方法的调用者中捕获并处理异常

    自定义异常类MyException:

    package com.exception;
    //自定义异常类
    public class MyException extends Exception{
    
        //传递数字 >10   抛出异常
        private int detail;
    
        public MyException(int a){
            this.detail = a;
    
        }
        //异常的打印信息
        @Override
        public String toString() {
            return "MyException{" +
                    "detail=" + detail +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    测试类Test:

    package com.exception;
    
    public class Test {
        //可能存在异常的方法
        static void test(int a)throws MyException{
            System.out.println("传递的参数为:"+a);
            if(a>10){
                throw new MyException(a);  //抛出
            }
            System.out.println("ok");
        }
    
        public static void main(String[] args) {
            try {
                test(11);
            } catch (Exception e) {   //捕获异常
                System.out.println("MyException=>"+e);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    总结:

    1. 处理运行时异常时,采用逻辑去合理规避同时辅助 try-catch 处理。
    2. 在多重 catch 块后边,可以加一个 catch (Exception) 来处理可能会被遗漏的异常。
    3. 对于不确定的代码,也可以加上 tyr-catch ,处理潜在的异常。
    4. 尽量去处理异常,切忌只是简单地调用 printStackTrace() 去打印输出。
    5. 具体如何处理异常,要根据不同的业务需求和异常类型去决定。
    6. 尽量添加 finally 语句块去释放占用的资源。

    简单粗暴!
    加油!!
    感谢ლ(°◕‵ƹ′◕ლ)!!!

  • 相关阅读:
    MyBatis的映射器语法
    创建谷歌账号 绕过手机验证(2023.11亲测有效)
    计算机毕业设计java毕业设计项目源代码SSM电影院订票系统|影视[包运行成功]
    《nlp入门+实战:第八章:使用Pytorch实现手写数字识别》
    redis复习总结
    未归一化导致Dead ReLU的悲剧
    插值查找算法(思路分析) [数据结构][Java]
    RocketMQ—MAC单节点安装下载RocketMQ步骤
    sync.Pool:提高Go语言程序性能的关键一步
    基于Unet的环路滤波
  • 原文地址:https://blog.csdn.net/yao_yaoya/article/details/127993337