3.自定义异常
Posted duanfu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.自定义异常相关的知识,希望对你有一定的参考价值。
自定义异常:
使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。
在程序中使用自定义异常类,大体可以分为以下几个步骤:
- 创建自定义异常类
- 在方法中通过throw关键字抛出异常对象
- 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
- 在出现异常方法的调用者中捕获并处理异常。
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语句块去释放占用的资源
以上是关于3.自定义异常的主要内容,如果未能解决你的问题,请参考以下文章
全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段