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自定义异常的用法的更多相关文章

  1. JAVA的continue用法

    JAVA的continue用法: public class test{ public static void main(String [] args){  for(int i=0;i<=10;i ...

  2. Java Spring AOP用法

    Java Spring AOP用法 Spring AOP Java web 环境搭建 Java web 项目搭建 Java Spring IOC用法 spring提供了两个核心功能,一个是IoC(控制 ...

  3. Java Spring IOC用法

    Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...

  4. 四种Java线程池用法解析

    本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 执行一个异步任务你还只是如下 ...

  5. JAVA中ArrayList用法

    JAVA中ArrayList用法 2011-07-20 15:02:03|  分类: 计算机专业 |  标签:java  arraylist用法  |举报|字号 订阅     Java学习过程中做题时 ...

  6. oracle 集合变量以及自定义异常的用法

    oracle 集合变量以及自定义异常的用法, 在过程 record_practice 有record变量和自定义异常的用法实例.具体在3284行. CREATE OR REPLACE Package ...

  7. this在java中的用法

    this在java中的用法 1.使用this关键字引用成员变量 作用:解决成员变量与参数或局部变量命名冲突的问题 public class Dog { String name; public Dog( ...

  8. java assert的用法简介【转】

    assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ...

  9. java Arrays.asList用法

    java Arrays.asList用法 用途 Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁. 注意 Arrays.asLi ...

随机推荐

  1. 【Spring Security】1.快速入门

    1 导入Spring Security的相关依赖 <dependency> <groupId>org.springframework.boot</groupId> ...

  2. CSS学习第三天

    定位布局: 相对定位:相对于自身的位置进行偏移position需要搭配left right top bottom      position: relative; 绝对定位:相对于有position属 ...

  3. C#LeetCode刷题之#598-范围求和 II​​​​​​​(Range Addition II)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3881 访问. 给定一个初始元素全部为 0,大小为 m*n 的矩阵 ...

  4. 总结vue知识体系之实用技巧

    vue 作为目前前端三大框架之一,对于前端开发者可以说是必备技能.那么怎么系统地学习和掌握 vue 呢?为此,我做了简单的知识体系体系总结,不足之处请各位大佬多多包涵和指正,如果喜欢的可以点个小赞!本 ...

  5. Mybatis-08-动态SQL

    动态SQL 什么是动态SQL? 根据不同的条件生成不同的SQL语句. if choose(where,otherwise) trim(where,set) foreach 搭建环境 create ta ...

  6. ARM伪指令与伪操作

    一.伪指令 ARM伪指令有四个,分别是LDR.ADR.ADRL和NOP,下边对其分别介绍. 1.1 LDR LDR 伪指令用于加载 32 位的立即数或一个地址值到指定寄存器 .形式如  LDR{con ...

  7. 跟我一起学.NetCore之配置变更监听

    前言 通常程序中配置少不了,配置的修改也避免不了,配置的热更新为此给应用程序带来很大的便捷,不用重启,提高用户体验:但往往有时候需要对修改进行审计,也就是需要记录,有时候也会针对配置修改的时候触发相关 ...

  8. 微信access token过期

    两台服务器使用同一个微信账号(同一个app id) 时,当其中一台服务器向微信请求access token时,会造成另一台服务器的access token过期

  9. Finding the Right EAV Attribute Table

    $customer = Mage::getModel('catalog/product'); $entity = $customer->getResource(); $attribute = M ...

  10. Linux 资源监控与性能测试

    综合管理 glances 系统情况监控 vmstat 能看到上下文切换,runnable进程个数,uninterrupted进程个数 磁盘IO iostat是磁盘级别监控,iotop进程级别监控,注意 ...