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 ...
随机推荐
- 极简 Node.js 入门 - 2.1 Path
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- java 多态一
一 多态的概述 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学 生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个事物的多种形态.如Studen ...
- 吐血整理:二叉树、红黑树、B&B+树超齐全,快速搞定数据结构
前言 没有必要过度关注本文中二叉树的增删改导致的结构改变,规则操作什么的了解一下就好,看不下去就跳过,本文过多的XX树操作图片纯粹是为了作为规则记录,该文章主要目的是增强下个人对各种常用XX树的设计及 ...
- C#LeetCode刷题之#661-图片平滑器( Image Smoother)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3730 访问. 包含整数的二维矩阵 M 表示一个图片的灰度.你需要 ...
- Oracle创建主键优劣
创建主键方式 一个表的主键是唯一标识,不能有重复,不允许为空. 一个表的主键可以由一个字段或多个字段共同组成. -- 列级,表级建立主键 1.create table constraint_test ...
- Golang gRPC学习(04): Deadlines超时限制
为什么要使用Deadlines 当我们使用gRPC时,gRPC库关系的是连接,序列化,反序列化和超时执行.Deadlines 允许gRPC客户端设置自己等待多长时间来完成rpc操作,直到出现这个错误 ...
- PMI-ACP认证,你了解多少?
PMI-ACP ®(敏捷管理专业人士)认证是由美国项目管理协会(PMI ®)于2011年推出的一门敏捷项目管理考试科目,全称Agile Certified Practitioner.PMI-ACP®证 ...
- 初识ABP vNext(4):vue用户登录&菜单权限
Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 目录 前言 开始 登录 菜单权限 运行测试 最后 前言 上一篇已经创建好了前后端项目,本篇开始编码部分. 开始 几乎所有的系统都绕不开登 ...
- hiho一下第零周(题目1 : A + B)
#include<iostream> using namespace std; int main() { int a,b; while(cin>>a>>b) cou ...
- Typescript node starter 2.Router Middleware
Router 路由器对象是中间件和路由的一个独立实例.可以将它视为一个“迷你应用程序”,仅能够执行中间件和路由功能.每个Express应用程序都有一个内置的应用程序路由器. 路由器的行为类似于中间件本 ...