throw自定义异常小案例

题目

模拟实现用户购买商品的功能,使用数组模拟商品列表,当购买的商品不存在或者商品库存为0时,抛出自定义异常。用户购买某一个商品时,对异常进行处理,并对库存进行改变。

  1. 首先创建商品实体
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Goods {private int id;//商品idprivate String name;//商品名private int store;//商品库存private int price;//商品价格
}

此处使用的lombok插件添加注解详情

  1. 创建一个类写购买商品的方法
public class Exception2 {public static Goods[] goods;//初始化商品数组public static Scanner input;//初始化输入Scanner//初始化商品数据static {goods = new Goods[3];input = new Scanner(System.in);goods[0] = new Goods(1,"apple", 10, 8000);goods[1] = new Goods(2,"apple", 5, 3500);goods[2] = new Goods(3,"apple", 8, 4200);}//main方法调用购买商品的方法public static void main(String[] args) {try {buygood();} catch (BuyGoodsException e) {System.out.println(e.getMessage());}}private static void buygood() {showGoods();System.out.println("请输入要买的商品id");int goodId = input.nextInt();//初始化一个要购买的商品Goods buygood = null;//设置变量boolean flag = false;for (Goods good : goods) {if(good==null){break;}//循环遍历商品数组中的每一个数组与输入的商品Id对比查看是否存在该商品if(good.getId() == goodId){buygood = good;//如果找到该商变量变为trueflag = true;//结束循环break;}}//如果!flag==true说明flag=falsh为初始化值没有进入循环内的判断没有找到该商品//抛出自定义异常if(!flag){throw new BuyGoodsException("商品不存在");}System.out.println("您购买的商品信息如下");System.out.println(buygood);System.out.println("请输入要购买"+buygood.getName()+"的数量");int buynum = input.nextInt();//当购买数量大于商品内存的时候抛出异常if(buynum>buygood.getStore()){throw new BuyGoodsException("该商品库存不足");}System.out.println("购买"+buygood.getName()+buynum+"个"+"共计"+buynum*buygood.getPrice());//重新设置商品的库存buygood.setStore(buygood.getStore()-buynum);//展示购买完商品的信息showGoods();}//展示所有商品信息方法private static void showGoods() {//循环商品数组for (Goods good : goods) {//如果商品不等于空展示该商品if (good != null) {System.out.println(good);}}}}
  1. 写自定义异常类

    public class BuyGoodsException extends RuntimeException {//自定义的异常类必须继承Exception的子类RuntimeException//当然也可以继承Exception那么这个自定义异常类就变成了编译时异常//必须处理private String msg;public BuyGoodsException(String msg) {super(msg);}//此处的构造方法必须重写父类的放方法。
    }

    初来乍到有写的不对的欢迎指教

Java习题>|异常>|throw自定义异常小案例相关推荐

  1. java awt自学1 container小案例

    想做自己的应用,学一下图形界面. 教程来源于B站:教程在这里 创建Frame,设置Frame可见,setBounds方法,创建Panel,add方法. package com.lzy.containe ...

  2. JAVA实现可视化的xpath_【Java】爬虫基础 -- XPath 小案例

    在项目下新建一个xpath.html 文件,编写代码解析books.xml. 代码如下: Title /*定义一个函数用来加载xml文档*/ function loadXMLDoc(dname) { ...

  3. Java多态实现人喂养宠物小案例

    代码要求: 定义动物类 属性:年龄,颜色 生成空参有参构造,set和get方法 行为:eat(String something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃 ...

  4. java多线程实现卖火车票小案例同步代码块优先级守护线程

    /***  *   * @author 时光机jay  * @version 1.8  * @since 2020/9/28  *   * */ public class Test33 {     s ...

  5. 抛出运行时异常的目的_「JAVA」运行时异常、编译时异常、自定义异常,通过案例实践转译和异常链...

    Java基础之异常处理机制 什么是异常 从事Java开发的小伙伴对于"异常"应该不陌生,因为每天都会遇到不少异常,或捕获,或抛出.那究竟什么是异常?异常即非正常的,不同于平常.一般 ...

  6. springMVC02-SSM整合(Result统一响应数据格式、异常页面修改、SSM整合vue-elementUI小案例、SpringMVC的拦截器Interceptor)

    文章目录 今日内容 一.SSM整合[重点] 1 SSM整合配置 问题导入 1.1 SSM整合流程 1.2 SSM整合配置 1.2.1 创建工程,添加依赖和插件 1.2.2 Spring整合Mybati ...

  7. java 处理异常的场景_Java高级----异常处理机制、自定义异常----含思维导图

    Java高级----异常处理机制.自定义异常----含思维导图 Java高级----异常处理机制.自定义异常----含思维导图 南一Java自学交流QQ群: 586012641 拒绝任何广告,共享Ja ...

  8. Java 中常见的异常和自定义异常

    常见异常: java.lang.nullpointerexception    这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者 ...

  9. JAVA语言异常_Java语言中常用异常类EoFException是用来处理( )异常的类_学小易找答案...

    [填空题]Java语言中常用异常类ClassNotFoundException是用来处理 ( )的异常的类 [填空题]Java语言声明 ( ) 类为会产生"严重错误"的类 [简答题 ...

  10. java中北大学ppt总结+课后习题第二章(小宇特详解)

    java中北大学ppt总结+课后习题第二章(小宇特详解) 基本数据类型 Java语言有8种基本数据类型. 逻辑类型:boolean.1字节 整数类型: 1字节整数类型:byte. 2字节整数类型:sh ...

最新文章

  1. [51nod]1284 2 3 5 7的倍数(容斥原理)
  2. ElasticSearch API文档查看
  3. 为什么 0.1 + 0.2 = 0.300000004
  4. 【c语言】 gets()函数不执行/被跳过
  5. 在framework和hal添加log
  6. 全国各省市县统计年鉴/中国环境统计年鉴/中国工业企业数据库/中国专利数据库/污染排放数据库
  7. cmd /c和cmd /k 以及CMD命令
  8. 架空线路的基本结构及组成
  9. 要如何实现pdf图片提取?可以试试这些方法
  10. 《OpenGL编程指南(原书第9版)》——第3章 3.0OpenGL绘制方式
  11. 阿里巴巴容器技术 Pouch 解析
  12. php onblur=,onblur
  13. 海马玩模拟器 v0.7.2 官方版
  14. python flask上传Excel并把Excel的数据导入数据库
  15. 谷歌 I/O 深度解析:Android Jetpack 最新变化
  16. k8s二进制安装部署(详细)
  17. contourf()绘制填充颜色的二维等高线图
  18. ####好好好#####知识图谱上的双塔召回:阿里的IntentGC模型
  19. 用 Python 生成 CSV 文件
  20. 正则表达式--只求能看懂别人写的正则表达式是什么意思

热门文章

  1. python生成指定年份所有的天,并计算每天属于一年的第几周和周几
  2. python实现判断给定列表是否存在重复元素,且索引差小于k
  3. Ubuntu16.04 Jupyter安装(Ipython Notebook安装)
  4. c语言编写的程序不具备移植性,《C语言》试卷1
  5. python和其它语言混合编程_C++和Python混合编程 - python嵌入C++
  6. C++ cmake 命令用法
  7. C++ 构造函数后面有冒号 ~ : ()
  8. mysql 怎么创建B Tree索引_B-Tree,B+Tree以及mysql索引的实现
  9. Spring DeferredResult 实现长轮询
  10. java mvc 登陆_SpringMVC实现用户登录实例