异常之自定义异常类-程序员宅基地

技术标签: java  学习杂项  

自定义的异常类一般步骤: 
        1.自定义异常类要继承于Exception类或其子类,或其它异常类。 
        2.为自定义异常类声明字段(属性)成员、方法成员或重写父类的字段和方法。 
        3.自定义异常类至少要定义两个构造方法:一个是无参的;另外一个是带 String参数的,目的是将此字符串传递给

父构造方法,同时这个String的 信息作为该异常对象的描述信息。 
        4.最后,起一个能标识异常情况的有意义的名字。 
 

 示例代码:

        代码中先创建了一个MeiQianException来继承异常类,在里面实现出现异常的时候调用的方法,并且这个方法需要传递进参数。super在方法中的作用是当出现这个异常的时候控制台打印的信息。

         throws觉得抛出的是哪种异常,throw抛出异常对象。

public class MeiQianException extends Exception{
    // 代表取钱的时候还差多少钱
    private Double money;

    public MeiQianException(Double money) {
        // super里面的字符串,代表当跑出这个异常的时候打印的异常信息
        super("余额不足还差: " + money);
        this.money = money;
    }

public class AccountAdmin {
    // 余额 (当前账号还有多少钱)
    private Double balance;

    public AccountAdmin(Double balance) {
        this.balance = balance;
    }

    // 存钱
    public void deposit(double money) {
        balance += money;
    }

    // 取钱
    public void withdraw(double money) throws MeiQianException {
        if (balance >= money) {
            balance -= money;
        } else {
            double needMoney = money - balance;
            // 当取钱余额不足的时候,给调用者抛出一个异常,而且这个异常
            // 是编译时异常,需要取钱调用这个方法的人必须要未雨绸缪处理
            throw new MeiQianException(needMoney);
        }
    }

    public static void main(String[] args) {
        AccountAdmin accountAdmin = new AccountAdmin(30000.0);
        accountAdmin.deposit(200);
        try {
            accountAdmin.withdraw(40000.0);
        } catch (MeiQianException e) {
            e.printStackTrace();
        } finally {
            System.out.println("finally");
        }
        System.out.println("AccountAdmin.main");
    }

}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shanhejiesui/article/details/119393721

智能推荐

【AppScan扫描篇】求人不如求己!解决带验证码的系统AppScan登录序列记录失败问题。_appscan无法记录登录-程序员宅基地

文章浏览阅读6.6k次,点赞4次,收藏34次。0x00扫描神器AppScan大家应该都不陌生了。废话少说,直入主题。0x01我们在工作过程中,经常会遇到登录页面带验证码的系统,如果我们直接打开AppScan下一步下一步,按推荐方法记录登录序列时会提示记录失败。比较方便又比较麻烦的办法是让开发暂时把验证码屏蔽了。但是可能被开发嫌弃等等。。。0x02 解决方法:URL输入登录后的主页路径登录方法选择无。然后点击左下角完全扫描配置,选择参数和cookie,安装下图填入你浏览器的cookie。(Chrome查看接口或者burp .._appscan无法记录登录

实战分析江恩理论_江恩理论精髓读后感-程序员宅基地

文章浏览阅读9.4k次。从费氏数列看时间周期 William D. Gann(续贴,请再本栏寻找前文)  13世纪初,一位名叫费波纳奇的意大利商人兼数学家在完成一次埃及之旅后,写下一本数学名著——《计算的书》。这本书产生了两个成果:一个是把有史以来最伟大的数学发现——10进制从埃及传到欧洲,并使它成为以后一切数学计算的基础;一个就是费波纳奇数列。这一数列揭示了事物在不间断运动状态下所具有的某种自然规则,反映了一种自然_江恩理论精髓读后感

转义字符‘/‘-处理两个单引号_jdbc单引号转义字符-程序员宅基地

文章浏览阅读1.2k次。1.背景使用到两个单引号’’’’,其中一个单引号作为SQL语句的拼接字符。2.’'转义字符处理'\'~\'''IFNULL(pk_card,\'~\')'3.解决问题基础最重要._jdbc单引号转义字符

Spring Boot基础_spring boot jsr negative-程序员宅基地

文章浏览阅读163次。一、Spring Boot 入门1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;单体应用:ALL IN ONE微服务:每一个功能元素最终都是一个可独立替换和独立..._spring boot jsr negative

AD原理图自动结点大小及颜色更改-程序员宅基地

文章浏览阅读812次。AD原理图自动结点大小及颜色更改

Web前端大作业:基于bootstrap响应式页面,家具装修公司网站_装修公司网站代码制作-程序员宅基地

文章浏览阅读90次。 公司官网网站 、企业官网、酒店官网、等网站的设计与制作。️ 网页中包含:Div+CSS、鼠标滑过特效、Table、导航栏效果、banner、表单、二级三级页面等,视频音频元素,同时设计了logo(源文件),基本期末作业所需的知识点全覆盖。 一套优质的网页设计应该包含 (具体可根据个人要求而定)网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程序方面:计划采用最新的网页编程语言HTML5+CSS3+JS程序语言完成网站的功能设计。并确保网站_装修公司网站代码制作

随便推点

python的kcf跟踪算法_kcf跟踪算法 python-程序员宅基地

文章浏览阅读5.6k次,点赞5次,收藏61次。1.代码链接:https://github.com/uoip/KCFpy2.代码修改下:直接用没用起来,各种小问题,python版本不同造成的。2.1fhog代码import numpy as np import cv2from numba import jit# constantNUM_SECTOR = 9FLT_EPSILON = 1e-07@jitdef func1(dx, dy, boundary_x, boundary_y, height, width, numC_kcf跟踪算法 python

benchmark部署简单心得_benchmark-java部署教程-程序员宅基地

文章浏览阅读1.2k次。一. YCSB部署安装注意:在安装YCSB benchmark时需要注意各个安装包的版本问题(Hbase---JDK) (Hbase---Hadoop) 假设Hadoop环境已经完全配置并部署成功YCSB是一种很流行的用于NoSQL数据库管理系统的benchmark。YCSB提供了不同的workloads,每个都有不同的组合和..._benchmark-java部署教程

[Problem b HYSBZ - 2301][GCD HDU - 1695] 莫比乌斯反演 + 容斥 + 分块-程序员宅基地

文章浏览阅读169次。Problem b HYSBZ - 2301对于给出的 nnn 个询问,每次求有多少个数对 (x,y)(x,y)(x,y) ,满足 a≤x≤ba ≤ x ≤ ba≤x≤b , c≤y≤dc ≤ y ≤ dc≤y≤d ,且 gcd(x,y)=kgcd(x,y) = kgcd(x,y)=k , gcd(x,y)gcd(x,y)gcd(x,y) 函数为 xxx 和 yyy 的最大公约数。Inp...

小白学习[leetcode]之575 分糖果-程序员宅基地

文章浏览阅读96次。题目的链接在这里:https://leetcode-cn.com/problems/distribute-candies/目录题目大意一、示意图二、解题思路java实现题目大意给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。一、示意图二、解题思路java实现代码如下:class Solution { public int distributeCandies(i

06:循环数_06:循环数-程序员宅基地

文章浏览阅读8.2k次,点赞15次,收藏32次。06:循环数 总时间限制: 1000ms 内存限制: 65536kB 描述 若一个n位的数字串满足下述条件,则称其是循环数(cyclic):将这个数字串视为整数(可能带有前导0),并用任意一个 1 到 n 之间(包含1和n)的整数去乘它时, 会得到一个将原数字串首尾相接后,再在某处断开而得到的新数字串所对应的整数。例如,数字 142857 是循环数,因为: 142857 *1 = 1428_06:循环数

vert.x json mysql_如何在Vert.x中用Jackson传输JSON结果(java)-程序员宅基地

文章浏览阅读391次。我假设您正在生成巨大的JSON文档,因为小的字符串输出已足够好:objectMapper.writeValue(< String&gt ;, result);流有问题. ObjectMapper不知道结果大小,您最终会遇到以下异常:java.lang.IllegalStateException: You must set the Content-Length header to be..._you must set the content-length header to be the total size of the message b

推荐文章

热门文章

相关标签