当前位置: 首页 > 编程日记 > 正文

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

我们在学习java技术的时候应该有了解过,在java中是定义了很多的异常类的,虽然这些大量异常类可以帮助我们描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在设计divide()方法时不允许被除数为负数。为了解决这样的问题,Java允许用户自定义异常,但自定义的异常类必须继承自Exception或其子类。接下来通过一个案例来学习自定义异常的创建,如例4-35所示。

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

//下面的代码是自定义一个异常类继承自 Except ion

public DivideByMinusException extends Exception

public DivideByMinusException (){

super () //调用Exception无参的构造方法

}

public DivideByMinusException (String message){

//调用 Exceptlon有参的构造方法

}

}

在实际开发中,如果没有特殊的要求,自定义的异常类只需继承Exception类,在构造方法中使用super()语句调用Exception的构造方法即可。

既然自定义了异常,那么该如何使用呢?这时就需要用到throw关键字,在程序指定位置通过throw关键字抛出自定义的异常对象,然后对抛出的异常进行异常处理。

接下来重新对例4-33中的divide()方法进行改写,在divide()方法中判断被除数是否为负数,如果为负数,就是用throw关键字向调用者抛出自定义的DivideByMinusException异常对象,如例4-36所示。

例4-36 Example36.java

public class Exanple36 (

//下面的方法实现了两个整数相除

public static int divide(int x,int y) throws DivideByMinuaException{

if (y ==0){

//使用throw关键字声明异常对象

throw new DivideByMinuaException("除数是0")

}

int result. =x / yL; //定义一个变量resulc记录两个散相除的结果

return result; //将结果返回

publlc static void main(String[] args) {

try {

int result =divide (4, 0);

System.out.println(result);

} catch (DivideByMinuaException e) {

Syatem.out.println(“捕获的异常信息为:" +e.getMesaage()):

}

}

}

运行结果如下图所示:

java

例4-36中,divide()方法通过逻辑判断对除法运算的除数是否为0进行了判断,如果除数为0就使用throw关键字抛出自定义的DivideByMinusException异常对象,然后通过throws关键字抛出异常,并在最后通过try…catch语句捕获异常。从图4-40可以看出,程序执行后判断出除数为0,抛出了指定的异常信息。

相关文章:

【组队学习】【28期】基于transformers的自然语言处理(NLP)入门

基于transformers的自然语言处理(NLP)入门 论坛版块: http://datawhale.club/c/team-learning/39-category/39 开源内容: https://github.com/datawhalechina/Learn-NLP-with-Transformers 学习目标 自然语言处理(Natural Language Pro…

java io在文件结尾持续添加内容

[代码] java io在文件结尾持续添加内容 public static void write(String path, String content) {try {File f new File(path);BufferedWriter output new BufferedWriter(new FileWriter(f,true));output http://www.szhaoexport.com/linked/20130222.do; .write(content &…

Docker1.12让容器使用和宿主机同一个网段

2019独角兽企业重金招聘Python工程师标准>>> Docker1.12让容器使用和宿主机同一个网段 博客分类: docker 由于开发的一些特殊需求,需要将容器部署在与宿主机同一个网段中,部署步骤如下:步骤一:创建网络$ …

java培训分享:java培训架构师学习线路图

本期java教程分享主要是讲解关于java培训架构师方面的内容,主要针对java架构师的学习线路图进行一个知识点的概括,下面来看看学习java架构师都需要了解哪些内容吧。 java培训分享:java培训架构师学习线路图 1、常见模式与工具 学习Java技术体…

设计中涉及到的dip、dp、px、sp等单位说明

在进行UI设计中常会遇到各种数值单位,开始使用时也常搞混,于是搜集了单位解说的文章与大家一同分享 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用…

【组队学习】【28期】Datawhale组队学习内容介绍

第28期 Datawhale 组队学习活动马上就要开始啦! 本次组队学习的内容为: 吃瓜教程——西瓜书南瓜书李宏毅机器学习动手学数据分析集成学习SQL编程语言R语言数据科学基于Python的会员数据化运营数据采集从入门到精通基于transformers的自然语言处理(NLP)入…

多线程读一个全局变量要不要加锁?还是说只是当修改全局变量的时候才要加锁?...

如果所有线程都只读取该变量的话不必加锁,因为仅读取不存在破坏数据的风险,如果有线程写该变量的话不管读取还是写入都要加锁的。

java培训教程分享:Java编写软件代码自动提示功能

本期的java培训教程分享主要是介绍的java编写软件代码的一个自动提示功能,很多零基础和初学java的同学们对这一块还不是很了解,Eclipse for android 实现代码自动提示智能提示功能,以下是介绍 Eclipse for android。 java培训教程分享&#x…

iOS WebviewJavascriptBridge 源码研读笔记

这两天接近元旦,事情稍微少些,有些时间,索性写点什么,就从最擅长的iOS混合开发写起了,由于iOS开发经验不到四年吧,期间还搞了一年半的前端,有些知识可能还是积累的不足,能力不足&…

Debian上网的问题小结

装完系统或装系统中很重要的部分就是配置网络的问题了,记得刚安装Debian的时候还不知道dhclient eth0真是杯具。 关于怎么设置识别网卡su->输入root密码->nano /etc/network/interface然后分情况,如果你是有线的且只有一个网卡,就叫eth…

【组队学习】【28期】青少年编程(Scratch 一级)

青少年编程(Scratch 一级) 论坛版块: http://datawhale.club/c/team-learning/34-category/34 开源内容: https://github.com/datawhalechina/team-learning-program/tree/master/Scratch 学习目标 全国青少年软件编程等级考…

java培训教程分享:Java中怎样将数据对象序列化和反序列化?

本期为大家介绍的java培训教程是关于“Java中怎样将数据对象序列化和反序列化?”的内容,相信大家都知道,程序在运行过程中,可能需要将一些数据永久地保存到磁盘上,而数据在Java中都是保存在对象当中的。那么我们要怎样将对象中的…

C#实现的几种委托

//普通委托DeleteShow ds new DeleteShow(ShowName);Console.WriteLine("----------------------");Console.WriteLine("普通委托----请输入用户名:");string Name Console.ReadLine();Console.WriteLine(ds(Name));Console.WriteLine("-----------…

AFN框架使用整理

1.AFN框架基本使用 1 AFN内部结构 AFN结构体 NSURLConnection(iOS9.0废弃了) AFURLConnectionOperationAFHTTPRequestOperationAFHTTPRequestOperationManager(封装了常用的 HTTP 方法) 属性 baseURL :AFN建议开发者针对 AFHTTPRequestOperationManager 自定义个一个单例子类&a…

【青少年编程】【一级】小镇一日游

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档&…

参加java培训后,就业方向有哪些

参加java培训后,就业方向有哪些?很多正在参加java培训的同学对这个问题都比较关注,那么下面小编就针对这个问题为大家做下详细的介绍,希望能够帮助到大家。 参加java培训后,就业方向有哪些?首先我们来了解一下Java的应用领域&am…

访问本地文件403

电脑不知道怎么设置的根目录下看不到所有文件夹 而且打开一个新的文件夹显示 Forbidden You dont have permission to access /atina/ on this server. 最后没办法只能手动把文件夹加上权限 chmod -R 777 atina //-R 递归修改,“/文件夹/“以下所有内容&#xff08…

iOS微信支付集成 SDK1 7 5

最近做了一个新项目,涉及到支付宝和微信支付,支付宝和微信都是业界的老大哥,相信大家都有所觉得文档、SDK都是各种坑吧(纯粹吐槽而已),这是继上篇支付宝支付集成后接着的微信支付集成。 1.微信商户申请步骤…

【青少年编程(第26周)】一下子多了很多事!

2021年08月15日(周日)晚20:00我们在青少年编程竞赛交流群开展了第二十六次直播活动。我们直播活动的主要内容如下: 首先,我们奖励了上周测试超过60分的小朋友。 其次,介绍了Datawhale青少年组队学习活动的规划&#x…

Python培训教程分享:10款超好用的Python开发工具

学会Python技术后,我们在参加工作的时候如果能有辅助工具的话,那么会很大程度的提高我们的工作效率,那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的Python开发工具! Python培训教程分享:10款超…

pfSense book之2.4安装指南

pfSense商店的硬件产品都预装了pfSense软件。要重新安装pfSense软件或将其安装到其他硬件,请按照本章所述下载安装程序映像。警告预先从pfSense商店或授权合作伙伴以外的商业供应商预装pfSense软件的硬件不值得信任。 第三方可能已经对软件进行了未经授权的、未知的…

css中绝对定位中的left和top属性

<html><head><title>Absolute Position</title><style type "text/css">/*body具有红色边框&#xff0c;宽度300px&#xff0c;高度300px*/body {border: 1px solid red;width: 300px;height: 300px;}/*被绝对定位,颜色为silver*/div…

教育部办公厅关于2020-2021学年面向中小学生的全国性竞赛活动名单的公示

来源&#xff1a; http://www.moe.gov.cn/jyb_xxgk/s5743/s5745/202007/t20200701_469571.html 教育部办公厅关于2020-2021学年面向中小学生的全国性竞赛活动名单的公示 根据《教育部办公厅印发<关于面向中小学生的全国性竞赛活动管理办法&#xff08;试行&#xff09;&g…

UI设计培训分享:UI设计师如何准备面试?

很多参加完UI培训的同学后期都是需要面临找工作的&#xff0c;那么面试环节是必须要经历的&#xff0c;今天小编为大家介绍的内容就是关于UI设计师如何准备面试?希望下面的内容能够帮助到正在找工作的同学们。 UI设计培训分享&#xff1a;UI设计师如何准备面试? 一、 简历要重…

【CLR的执行模型:将源代码编译成托管模块】

CLR:由多种不同编程语言使用的运行库 托管模块&#xff1a;中间语言和元数据 非托管语言&#xff1a;C/C&#xff0c;不过此为特殊&#xff0c;可以写成托管代码 托管语言&#xff1a;C# 托管模块 1,PE32/PE32头:PE32运行在win32位系统中,win32运行在64位系统 2,CLR头,包括CLR版…

【组队学习】【28期】数据采集从入门到精通

数据采集从入门到精通 论坛版块&#xff1a; http://datawhale.club/c/team-learning/38-category/38 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-program/tree/master/CollectData 学习目标 随着数字化的不断推进&#xff0c;数据采集在数据…

url传递数据类型

php中传递数据&#xff0c;get或post方式为啥用字符串传递&#xff0c;为什么不能直接用数组形式&#xff0c;用的话可以吗 转载于:https://www.cnblogs.com/guoyinglichong/p/8184723.html

零基础参加java培训哪家机构好

零基础想要学会java技术&#xff0c;那么参加java培训机构是非常明智的选择&#xff0c;为什么这么说呢?因为如果选择自学&#xff0c;那么不仅学到的技术杂乱无章&#xff0c;后期工作也会有很大阻碍&#xff0c;系统的学习就会好很多&#xff0c;那么如今零基础参加java培训…

如何通过一行代码下载B站视频?

文章目录如何通过一行代码下载B站视频&#xff1f;Step1&#xff1a;安装you-getStep2&#xff1a;下载B站视频总结如何通过一行代码下载B站视频&#xff1f; You-Get 是一个基于 Python 3 的下载工具。使用 You-Get 可以很轻松的下载网络上的视频、图片及音乐。 下面我们介绍…

软件架构是软件的组织形式

软件架构是软件的组织形式 软件架构是软件的逻辑组织形式&#xff1b; 软件框架是软件的物理组织形式。