• 3.自定义异常


    自定义异常:
     
    使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。
     
    在程序中使用自定义异常类,大体可以分为以下几个步骤:
    1. 创建自定义异常类
    2. 在方法中通过throw关键字抛出异常对象
    3. 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
    4. 在出现异常方法的调用者中捕获并处理异常。

     1 package com.exception.demo02;
     2 
     3 //自定义的异常类:继承Exception
     4 public class MyException extends Exception {
     5 
     6     //传递数字>10;
     7     private int detail;
     8 
     9     public MyException(int a) {
    10         this.detail = a;
    11     }
    12 
    13     //toString:异常的打印信息
    14     @Override
    15     public String toString() {
    16         return "MyException{" + detail + '}';
    17     }
    18 }
     1 package com.exception.demo02;
     2 
     3 public class Test {
     4 
     5     //可能会存在异常的方法
     6 
     7     static void test(int a) throws MyException {
     8 
     9         System.out.println("传递的参数为:" + a);
    10         if (a > 10) {
    11             throw new MyException(a);//抛出
    12         }
    13 
    14         System.out.println("OK");
    15     }
    16 
    17 
    18     public static void main(String[] args) {
    19         try {
    20             test(11);
    21         } catch (MyException e) {
    22             System.out.println("MyException=>" + e);
    23         }
    24     }
    25 
    26 }
    27 
    28 结果:
    29 传递的参数为:11
    30 MyException=>MyException{11}
    实际应用中的经验总结:
    1、处理运行时以异常时,采用逻辑合理规避同时辅助 try-catch 处理
    2、在多重catch语句块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
    3、对于不确定的代码,也可以加上一个 try-catch ,处理潜在的异常
    4、尽量去处理异常,切记只是简单的 printStackTrace() 去打印输出
    5、具体如何处理异常,要根据不同的业务需求和异常类型去决定
    6、尽量添加finally语句块去释放占用的资源
  • 相关阅读:
    《JFlow: Practical Mostly-Static Information Flow Control》
    《嵌入式Linux C编程》第一章笔记
    Ansible --- 通过Ansible管理地区机房中的内网机器
    等保审核 --- MySQL密码复杂度
    等保审核 --- MySQL连接控制插件
    等保审核 --- MySQL操作审计记录
    CSS中居中的完全指南(中英对照翻译)
    svn提交报database is locked
    PHP session_cache_expire 会话函数
    MySQL CONCAT_WS 函数
  • 原文地址:https://www.cnblogs.com/duanfu/p/12222702.html
Copyright © 2020-2023  润新知