自定义Exception类
自定义异常
/*
- 自定义异常的三步骤
- 1.定义:一般是继承Exception,重写构造
- 2.设置:将该异常设置在某段代码中,复合条件则抛出
- 3.触发:调用设置了异常的代码,符合条件则触发异常
*/
先定义两个自定义异常:年龄异常 取款异常
AgeIllegalException
package SE02.n1Exception;
public class AgeIllegalException extends Exception{//年龄非法异常public AgeIllegalException() {super();// TODO 自动生成的构造函数存根}public AgeIllegalException(String message) {super(message);
// System.out.println(message);// TODO 自动生成的构造函数存根}
}
BalanceNotEnoughException
package SE02.n1Exception;public class BalanceNotEnoughException extends RuntimeException{public BalanceNotEnoughException() {super();// TODO 自动生成的构造函数存根}public BalanceNotEnoughException(String message) {super(message);// TODO 自动生成的构造函数存根}}
注意:BalanceNotEnoughException我继承的是RuntimeException,这是Exception的一个子类
先介绍一下这个子类
RuntimeException
RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerException,我们在写程序时不会进行catch或throw。
再写一个Person类并植入异常
package SE02.n1Exception;public class Person {int age=0;int balance=1000000;@Overridepublic String toString() {return "Person [age=" + age + "]";}public int getAge() {return age;}public void setAge(int age) throws AgeIllegalException {if(age>10000||age<0) {throw new AgeIllegalException("年龄非法");}this.age = age;}public void deposit(int money) {balance+=money;}public void withDraw(int money) {if(balance-money<0) {throw new BalanceNotEnoughException("钱不够");//可以看到在抛出本异常的时候,编译器并没有提示我们要抛出异常}balance-=money;}
}
Test类
package SE02.n1Exception;public class Demo04 {public static void main(String[] args){Person p = new Person();try {p.setAge(1000000);//触发AgeIllegalException} catch (AgeIllegalException e) {// TODO 自动生成的 catch 块e.printStackTrace();}p.withDraw(1000000000);//触发balanceNotEnoughException}
}
运行结果: SE02.n1Exception.AgeIllegalException: 年龄非法
at SE02.n1Exception.Person.setAge(Person.java:17)
at SE02.n1Exception.Demo04.main(Demo04.java:15)
Exception in thread “main” SE02.n1Exception.BalanceNotEnoughException: 钱不够
at SE02.n1Exception.Person.withDraw(Person.java:26)
at SE02.n1Exception.Demo04.main(Demo04.java:21)
总结:自定义异常还是比较简单的,新建一个自定义异常类,选择继承异常种类,再重写构造函数。然后在需要抛出异常的地方做判断,植入异常,具体语句:throw new xxxxxxException()
自定义Exception类相关推荐
- Java自定义Exception
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- php的异常处理,PHP异常处理Exception类
异常(Exception)用于在指定的错误发生时改变脚本的正常流程. 什么是异常? PHP 5 提供了一种新的面向对象的错误处理方法. 异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程.这 ...
- RocketMQ-初体验RocketMQ(11)-过滤消息_自定义Java类筛选消息
文章目录 概述 集群信息 项目结构 生产者 自定义类 消费者 测试结果 概述 RocketMQ-初体验RocketMQ(10)-过滤消息_SQL92表达式筛选消息 通过SQL92的方式,消费者可以过滤 ...
- java kafka 设置分区_Java kafka如何实现自定义分区类和拦截器
Java kafka如何实现自定义分区类和拦截器 2.producer配置文件指定,具体的分区类 // 具体的分区类 props.put(ProducerConfig.PARTITIONER_CLAS ...
- 自定义工具类:工具类介绍
自定义工具类 自定义注解 自定义注解 package com.learn.domain.poi;import java.lang.annotation.ElementType; import java ...
- 自定义python框架_Python web 框架Sanic 学习: 自定义 Exception
Sanic 是一个和类Flask 的基于Python3.5+的web框架,它使用了 Python3 异步特性,有远超 flask 的性能. 编写 RESTful API 的时候,我们会定义特定的异常错 ...
- C++异常处理类与自定义异常处理类
转自:http://blog.csdn.net/makenothing/article/details/43273137 例1:自定义一个继承自excepton的异常类myException C++标 ...
- java自定义注解类
一.前言 今天阅读帆哥代码的时候,看到了之前没有见过的新东西, 比如java自定义注解类,如何获取注解,如何反射内部类,this$0是什么意思? 于是乎,学习并整理了一下. 二.代码示例 import ...
- java kafka 分区_Java kafka如何实现自定义分区类和拦截器
生产者发送到对应的分区有以下几种方式: (1)指定了patition,则直接使用:(可以查阅对应的java api, 有多种参数) (2)未指定patition但指定key,通过对key的value进 ...
- 【开发随机】JAVA+POI+自定义注解+反射构建自定义工具类实现快捷简便的Excel模板化导出(附demo代码)
220907更新 项目UAT期间,用户反映了一个问题,数据量稍大的情况下,会出现"从某一行开始,往下所有行设置的字体和字体大小不生效"的BUG. 经过排查,发现原因是:POI的XS ...
最新文章
- onethink的熟悉
- 修改程序配置文件 以及写一个结构体数组到文件(以及整数和结构体)
- 讨论下 Java 流文件读写缓存大小设置的问题
- centos7开放端口访问不了_基于TiUP cluster 在centos7系统上模拟生产环境部署TiDB数据库...
- SpringBoot的yml配置文件
- 使用事件委托降低重复的事件绑定,从而降低dom操作的对性能的消耗
- Apache JMeter 压试 HTTP接口
- 《零基础》MySQL 选择数据库(七)
- AWS Fargate告诉你:什么是容器即服务
- 值得推荐的13款可视化软件,快收藏!
- dom4j 解析xml Error on line 9717 of document 不允许有匹配 [xX][mM][lL] 的处理指令目标
- 08服务器端口映射,windows_Server_2008_R2_NAT服务器_端口映射.pdf
- iOS逆向-day1:逆向内容的简介与越狱环境搭建
- IT故事:软件测试点亮了我人生的烛光
- 降压恒流 LED 驱动器
- windows文件夹图标只显示一半,另一半被白框遮挡解决办法
- Validation校验属性格式
- HOG+ADABOOST方式训练头肩检测模型
- Python 爬虫——爬取文章自动发送QQ群
- 一味迎合观众,就会被淘汰