当前位置: 首页 > news >正文

自定义异常

自定义异常

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

自定义异常类:

package exception.demo02;//自定义的异常类
public class MyException extends Exception {//传递数字 > 10;private int detail;public MyException(int a) {this.detail = a;}//toString:异常的打印信息@Overridepublic String toString() {return "MyException{" + detail + '}';}
}
package exception.demo02;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 (MyException e) {//增加一些处理异常的代码System.out.println("MyException=>"+e);//e就是自定义异常MyException中的toString方法,打印出来异常的消息}}
}

输出:

在这里插入图片描述

实际应用中的经验总结

  • 处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理
  • 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
  • 对于不确定的代码,也可以加上try-catch,处理潜在的异常,IDEA中如果有异常它一般会有红色波浪线报错,这时候Alt+Enter会有怎么处理的提示
  • 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出
  • 具体如何处理异常,要根据不同的业务需求和异常类型去决定
  • 尽量添加finally语句块去释放占用的资源
http://www.lryc.cn/news/44177.html

相关文章:

  • 基于springboot物资管理系统(程序+数据库)
  • 蓝桥杯Web组备赛笔记6
  • python控制语句
  • 华为OD机试题【最小叶子节点】用 Java 解 | 含解题说明
  • 【linux】多线程控制详述
  • SpringCloud学习-实用篇01
  • 如何使用python删除一个文件?好用到上头.....
  • java学习笔记——权限修饰符、内部类
  • Java设计模式(十二)—— 状态模式
  • 功能测试自动化成功的7个因素
  • 基于openssl 自行签发https 协议证书 ,同时支持nginx配置
  • Window Terminal 安装 Oh My Posh 美化
  • 单片机 | 51单片机实践
  • 根据时间戳获取总用时(天时分秒)
  • 【独家】华为OD机试 - 符合条件的子串长度 or 连续字串 ABV(C 语言解题)
  • 达梦数据库 linux安装
  • 数字孪生颠覆传统铝材挤压生产,全新生产方式即将到来!
  • 会声会影2023新版本功能详情讲解
  • nodejs+vue文旅门户信息网站 elementui旅游项目推荐系统 景点门票预订网站vscode
  • 学习HM微博项目第4天
  • 一次完整的OCR实践记录
  • Java中常见的密码学知识
  • Leetcode.2171 拿出最少数目的魔法豆
  • day1 计算机组成与结构考点汇总
  • Java虚拟机的类加载机制
  • 分治法实现合并排序(归并排序),理解分治算法思想,实现分治算法的完美例子合并排序(含码源与解析)
  • Typescript 类 (class)
  • KDZD程控超低频高压发生器
  • 【华为OD机试 2023最新 】 过滤组合字符串(C++)
  • Java笔记034-坦克大战【2】