• 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 语句块去释放占用的资源。

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

  • 相关阅读:
    Java学习笔记(二十三)
    MLP-Mixer: An all-MLP Architecture for Vision
    揭秘Spring Boot内嵌Tomcat原理
    20221203英语学习
    百度百科创建基础概念分享,为什么百度百科那么难做
    基于C++QT框架的地铁换乘可视化查询系统
    11.3SpringMVC
    C++:二叉搜索树
    c 摄像头生成yuv未压缩图片
    JMeter应用-循环控制器、计数器的配合使用
  • 原文地址:https://blog.csdn.net/yao_yaoya/article/details/127993337