zoukankan      html  css  js  c++  java
  • 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语句块去释放占用的资源
  • 相关阅读:
    c#读取.config文件内容
    c# 读取配置文件方法
    C# Log4net详细说明
    C# 运算符集
    LeetCode 69_ x 的平方根
    LeetCode 172 _ 阶乘后的零
    LeetCode 171 _ Excel表列序号
    LeetCode 88 _ 合并两个有序数组
    LeetCode 581 _ 最短无序连续子数组
    LeetCode 283 _ 移动零
  • 原文地址:https://www.cnblogs.com/duanfu/p/12222702.html
Copyright © 2011-2022 走看看