1、要求

  (1)定义Person类,包含name与age两个成员变量;

  (2)在Person类的有参数构造方法中,进行年龄范围的判断,若年龄为负数或大于200岁,则抛出NoAgeException异常,异常提示信息“年龄数值非法”;

  (3)在测试类中,调用有参数构造方法,完成Person对象创建,并进行异常的处理。

2、代码演示

  (1)自定义异常类

1 class NoAgeException extends Exception{
2     NoAgeException() {
3         super();
4     }
5
6     NoAgeException(String message)    {
7         super(message);
8     }
9 }

  (2)Person类

 1 class Person{
 2     private String name;
 3     private int age;
 4     Person(String name,int age) throws NoAgeException    {
 5         //加入逻辑判断。
 6         if(age<0 || age>200)        {
 7             throw new NoAgeException(age+",年龄数值非法");
 8         }
 9         this.name = name;
10         this.age = age;
11     }
12     //定义Person对象对应的字符串表现形式。覆盖Object中的toString方法。
13     public String toString()    {
14         return "Person[name="+name+",age="+age+"]";
15     }
16 }

  (3)测试类

 1 class ExceptionDemo{
 2     public static void main(String[] args) {
 3         try {
 4             Person p = new Person("xiaoming",20);
 5             System.out.println(p);
 6         }
 7         catch (NoAgeException ex){
 8             System.out.println("年龄异常啦");
 9         }
10         System.out.println("over");
11     }
12 }

3、构造函数到底抛出这个NoAgeException是继承Exception呢?还是继承RuntimeException呢?

  (1)如果继承Exception,必须要throws声明,一声明就告知调用者进行捕获,一旦问题处理了调用者的程序会继续执行;

  (2)如果继承RuntimeExcpetion,不需要throws声明的,这时调用是不需要编写捕获代码的,因为调用根本就不知道有问题。一旦发生NoAgeException,调用者程序会停掉,并有jvm将信息显示到屏幕,让调用者看到问题,修正代码

  

转载于:https://www.cnblogs.com/gzdlh/p/8095150.html

02024_自定义异常的练习相关推荐

  1. SpringBoot自定义异常源码分析

    SpringBoot自定义异常源码分析 在类上加ControllerAdvice注解,在方法上加ExceptionHandler注解,就可以在方法里处理相应的异常. 1.自定义异常处理类Additio ...

  2. throws throw 自定义异常

    我们知道当程序遇到异常时除了用try-catch-finally来捕获异常外,还可以用throws和throw去抛出异常,使用异常处理可以定位问题所在处,方便修改程序代码: 例如利用try-catch ...

  3. java培训教程分享:Java中用户如何自定义异常?

    我们在学习java技术的时候应该有了解过,在java中是定义了很多的异常类的,虽然这些大量异常类可以帮助我们描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在 ...

  4. java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为"XYZ",则抛出一个异常信息"This is a XYZ",如果从命令 ...

  5. 自定义异常类: 运行期间跟编译期间的区别

    1.自定义异常一: 继承RuntmeExcepyion,即运行期间异常;         由于我们自定义的是运行期间的异常,我们抛出异常,程序始终不作处理,程序编译的时候不会报错,但是运行的时候会报错 ...

  6. java+自定义异常类+输入若干成绩 为负数时输出抛出异常_java+自定义异常类+输入若干成绩 为...

    java+自定义异常类+输入若干成绩 为 [2021-02-10 19:00:54]  简介: java中定义类的关键字是:"class".在Java中定义一个类,需要使用&quo ...

  7. SpringBoot------全局异常捕获和自定义异常

    1.添加Maven依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w ...

  8. python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03

    python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...

  9. MVC Filter自定义异常(拦截)

    MVC Filter自定义异常(拦截) 参考文章: (1)MVC Filter自定义异常(拦截) (2)https://www.cnblogs.com/Tmc-Blog/p/5737886.html ...

最新文章

  1. 【Java Web开发指南】AjaxJson笔记
  2. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 对象控制反转
  3. OpenGL:读取图片显示
  4. vscodepython技巧_VScode Python no module的解决方法
  5. --num 与 num-- 的区别
  6. 修改命令有趣的Linux命令
  7. 手机上有没有学python的软件-如何优雅的在手机上进行Python编程
  8. CFileDialog用法详解
  9. 我们一起学习WCF 第五篇数据协定和消息协定
  10. wsdl2java工具生成客户端代码
  11. ERROR: libx264 not found
  12. java代码走查_java代码开发完成后,代码走查规范
  13. Java分页(limit)
  14. UPC、EAN、ISBN的编码介绍
  15. 机器学习算法工程师--实习面经
  16. 什么是CC攻击,CC攻击的防御方式有哪些
  17. GPS定位准确度CEP、RMS
  18. 忆过去 想未来 人有情
  19. 2023最新毕业设计选题 -python毕设选题推荐 - 如何选题 避免被坑
  20. 亚马逊aws 服务器删除_如何关闭Amazon AWS上服务器

热门文章

  1. 厉害了,比Transformer还好用!
  2. 刷新记录! CVPR2021全新目标检测机制达到SOTA!
  3. 学习 | 雷军 1994 年写的代码,不服不行
  4. CVPR | 旷视提出Meta-SR:单一模型实现超分辨率任意缩放因子
  5. 独家分享| 2019年校招大厂算法自己经历和好友经验(大疆,百度,腾讯……)
  6. php 图片单位转换,php如何把图片转换成二进制字符串
  7. 通过导入txt数据画出python turtle图形_【Python】txt文件读取绘画
  8. oracle导入表 忽略报错,oracle数据泵导入分区表统计信息报错(一)
  9. IO流的应用_Copy文件
  10. Bootstrap学习笔记(一)