Java自定义异常的用法
package day162020072701.day1601; /**
* @author liuwenlong
* @create 2020-07-27 09:25:44
*/
@SuppressWarnings("all")
public class Human {
private String name;
private char sex;
private int age; public int getAge() {
return age;
} public void setAge(int age) throws HumanException.AgeException {
if (age > 0 && age < 150) {
this.age = age;
return;
}
throw new HumanException.AgeException("年龄非法"); } public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public char getSex() {
return sex;
} public void setSex(char sex) throws HumanException.SexException {
if (sex == '男' || sex == '女') {
this.sex = sex;
return;
}
throw new HumanException.SexException("性别有误");
} @Override
public String toString() {
return "Human{" +
"name='" + name + '\'' +
", sex=" + sex +
", age=" + age +
'}';
}
}
package day162020072701.day1601; /**
* @author liuwenlong
* @create 2020-07-27 10:47:58
*/
@SuppressWarnings("all")
public class HumanException {
public static class AgeException extends Exception{
private String message; public AgeException(String message) {
this.message = message;
} @Override
public String getMessage() {
return message;
}
} public static class SexException extends Exception{
private String message; public SexException(String message) {
this.message = message;
} @Override
public String getMessage() {
return message;
}
}
}
package day162020072701.day1601; import java.util.Scanner; /**
* @author liuwenlong
* @create 2020-07-27 09:29:24
*/
@SuppressWarnings("all")
public class TestHuman {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); Human human = new Human();
human.setName("张三");
System.out.println("姓名:" + human.getName()); boolean flag = false;
while (!flag) {
flag = true;
try {
System.out.println("请输入性别:");
human.setSex(input.next().charAt(0));
System.out.println("性别:" + human.getSex());
System.out.println("请输入年龄:");
human.setAge(input.nextInt());
System.out.println("年龄:" + human.getAge());
} catch (HumanException.SexException e) {
flag = false;
System.out.println(e.getMessage());
} catch (HumanException.AgeException e) {
System.out.println(e.getMessage());
flag = false;
} catch (Exception e) {
System.out.println("出现未知错误!Error!");
flag = false;
} finally {
System.out.println("异常首尾");
}
}
System.out.println(human);
}
}

Java自定义异常的用法的更多相关文章
- JAVA的continue用法
JAVA的continue用法: public class test{ public static void main(String [] args){ for(int i=0;i<=10;i ...
- Java Spring AOP用法
Java Spring AOP用法 Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制 ...
- Java Spring IOC用法
Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...
- 四种Java线程池用法解析
本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 执行一个异步任务你还只是如下 ...
- JAVA中ArrayList用法
JAVA中ArrayList用法 2011-07-20 15:02:03| 分类: 计算机专业 | 标签:java arraylist用法 |举报|字号 订阅 Java学习过程中做题时 ...
- oracle 集合变量以及自定义异常的用法
oracle 集合变量以及自定义异常的用法, 在过程 record_practice 有record变量和自定义异常的用法实例.具体在3284行. CREATE OR REPLACE Package ...
- this在java中的用法
this在java中的用法 1.使用this关键字引用成员变量 作用:解决成员变量与参数或局部变量命名冲突的问题 public class Dog { String name; public Dog( ...
- java assert的用法简介【转】
assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ...
- java Arrays.asList用法
java Arrays.asList用法 用途 Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁. 注意 Arrays.asLi ...
随机推荐
- C#LeetCode刷题之#453-最小移动次数使数组元素相等(Minimum Moves to Equal Array Elements)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3877 访问. 给定一个长度为 n 的非空整数数组,找到让数组所有 ...
- Xor 思维题
Xor 思维题 题目描述 小\(Q\)与小\(T\)正在玩一棵树.这棵树有\(n\)个节点,编号为 \(1\),\(2\) \(3...n\),由\(n-1\)条边连接,每个节点有一个权值\(w_i\ ...
- 简单快速导出word文档
最近,我写公司项目word导出功能,应该只有2小时的工作量,却被硬生生的拉长2天,项目上线到业务正常运行也被拉长到2个星期. 为什么如此浪费时间呢? 1)公司的项目比较老,采用硬编码模式,意味着wor ...
- VM 添加硬盘,分区,挂载
添加硬盘后使用>df -h 命令 VM安装linux系统之后,发现我们的硬盘不够,可通过两种方式添加硬盘 方式一:选择虚拟机,点击右键,设置,点击硬盘,点击添加,输入新添加的硬盘大小,保存与虚拟 ...
- 跟我一起学.NetCore之配置变更监听
前言 通常程序中配置少不了,配置的修改也避免不了,配置的热更新为此给应用程序带来很大的便捷,不用重启,提高用户体验:但往往有时候需要对修改进行审计,也就是需要记录,有时候也会针对配置修改的时候触发相关 ...
- Linux非交互方式设置密码
echo "123" | passwd -stdin lamp echo testuser:password|chpasswd 参考:Linux通过Shell脚本命令修改密码不需要 ...
- Python的序列数据和变量
本篇内容涉及字符串.列表.元组.Python中的报错,以及变量本质,包括引用计数技术 该篇只为抛砖引玉,其内容来自Python学习中总结,另外感谢李老师的教导和Python班同学们的帮助 附上李老师和 ...
- Jmeter 常用函数(28)- 详解 __FileToString
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 读取整个文件 语法格式 ${__Fil ...
- Shell编程—创建函数
1基本的脚本函数 函数是一个脚本代码块,你可以为其命名并在代码中任何位置重用.要在脚本中使用该代码块时,只要使用所起的函数名就行了. 1.1创建函数 有两种格式可以用来在bash shell脚本中创建 ...
- .NetCore使用Redis,StackExchange.Redis队列,发布与订阅,分布式锁的简单使用
环境:之前一直是使用serverStack.Redis的客服端,今天来使用一下StackExchange.Redis(个人感觉更加的人性化一些,也是免费的,性能也不会差太多),版本为StackExch ...