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 ...
随机推荐
- Elasticsearch第三篇:查询详解
从第一篇开始,我用的ES版本就是7.8.0的,与低版本略有不同,不同点可以参考官方介绍,最大的不同就是抛弃 type 这一概念,为了方便测试,首先建立一个学生成绩的索引库(在建立的同时,规定字段类型, ...
- QT QMdiArea 添加背景或添加背景图片失效问题
说起QMdirArea 这个控件与其他控件真所不同.... 这里记一下 我踩过的坑之一,,,,, QMdiArea 默认的背景 不符合我要求,,当时我就理所当然就想往常一样给它设置颜色 万万没想到.. ...
- Web前端性能优化,应该怎么做?
摘要:本文将分享一些前端性能优化的常用手段,包括减少请求次数.减小资源大小.各种缓存.预处理和长连接机制,以及代码方面的性能优化等方面. base64:尤其是在移动端,小图标可以base64(webp ...
- github渗透测试工具库
本文作者:Yunying 原文链接:https://www.cnblogs.com/BOHB-yunying/p/11856178.html 导航: 2.漏洞练习平台 WebGoat漏洞练习平台: h ...
- Linux内核之 基本概念
一直想写写Linux内核的文章,特别是进程这方面的,说实话,不好写,也不太敢写:)直到遇到了一本好书.<Linux内核设计与实现>,原书<Linux Kernel Developme ...
- Javascript之其实我觉得原型链没有难的那么夸张!
原型链.闭包.事件循环等,可以说是js中比较复杂的知识了,复杂的不是因为它的概念,而是因为它们本身都涉及到很多的知识体系.所以很难串联起来,有一个完整的思路.我最近想把js中有点意思的知识都总结整理一 ...
- Android 使用AS编译出错:找不到xx/desugar/debug/66.jar (系统找不到指定的文件。)
以为是合作人配置文件的问题,后发现是缓存的问题,只需要Clean project,即可. 若提示无法删除目录:Unable to delete directory,或许是因为你打开了另一个项目,只需关 ...
- Android 获取对象列表中的某一列 / 所有对象的某一字段,Realm数据库可获取某一字段所有值
现在项目用的数据库是Realm,所以想要获取数据库中某一字段的数据没有一句直接的语句进行获取,就像MySQL一样的select name from User,从User表里获取所有的name. 所以只 ...
- Spring Boot系列(三):Spring Boot整合Mybatis源码解析
一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...
- bluetoothctl命令提示No default controller available
在学习bluetoothctl命令时,执行bluetoothctl,然后执行show,提示No default controller available. 1. 执行hciconfig,发现有hci0 ...