Java如何自定义异常?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、异常分为哪几种?
- 二、使用步骤
- 1.自定义异常
- 2.测试类
- 总结
前言
如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:把异常的名称,错误原因及异常出现的位置等信息输出在了控制台程序停止执行。
- 程序从 try 里面的代码开始执行
- 出现异常,就会跳转到对应的 catch 里面去执行
- 执行完毕之后,程序还可以继续往下执行
提示:以下是本篇文章正文内容,下面案例可供参考
一、异常分为哪几种?
异常分为两种,分别是编译异常和运行时异常。
编译时异常
- 都是Exception类及其子类
- 必须显示处理,否则程序就会发生错误,无法通过编译
运行时异常
- 都是RuntimeException类及其子类
- 无需显示处理,也可以和编译时异常一样处理
package com.xxgc.chop5_2.test;public class ExceptionDemo {public static void show4(){//把字符串转换int类型String a="张三";int b=Integer.parseInt(a);//NumberF}//异常抛出public static void show3() throws ClassNotFoundException {Class.forName("Student");}public static void show2(){//运行时异常:程序运行的时候出现的异常,可以try//编译时异常(非运行时异常):必须try catch 或者向上抛出try {Class.forName("Student");}catch (ClassNotFoundException e){e.printStackTrace();}}public static void show() {//制造一个异常,捕获异常,处理异常try{int []nums={1,2};int n=10/0;int a=nums[3];}catch (ArrayIndexOutOfBoundsException e) {e.printStackTrace();System.out.println("数组下标出错了");}catch (Exception e){e.printStackTrace();System.out.println("出错了");}finally {//最终最后都要之心的代码,一般完成资源释放工作System.out.println("最终的!!!");}}public static void main(String[] args) {//trows:向上抛出异常,抛给方法的调用者//show3()方法向上抛出了异常,需要main方法解决//1.main方法解决了//2.main没解决完,继续向上抛,jvm(Java虚拟机)解决try {show3();} catch (ClassNotFoundException e) {throw new RuntimeException(e);}}
}
二、自定义异常
1.首先新建一个类
这个类是自定义异常的类,首先我们进行继承idea的RuntimeException,其次建立有参和无参的方法。
代码如下(示例):
package com.xxgc.ch06.po;public class MyException extends RuntimeException{public MyException(){}public MyException(String s){super(s);}}
2.测试类
下面新建一个测试类,main方法和shou方法。在shou方法里定义一个int类型的a,进入if判断a是否异常。
代码如下(示例):
package com.xxgc.ch06.test;import com.xxgc.ch06.po.MyException;public class ThrowDemo {public static void show(){//如果a>10,抛出自己的异常int a=13;if (a>10){try {throw new MyException("不能大于10");}catch (MyException e){e.printStackTrace();System.out.println("出错啦!"+e.getMessage());}}System.out.println("扶苏");}public static void main(String[] args) {show();}
}
该处使用的idea软件。
总结
这里对文章进行总结:
以上就是今天要讲的内容,Java自定义异常需要新建一个类写入有参无参方法,此类需要继承idea的RuntimeException异常。下面就需要进行测试是否会显示。
以下为运行结果:
com.xxgc.ch06.po.MyException: 不能大于10
at com.xxgc.ch06.test.ThrowDemo.show(ThrowDemo.java:11)
at com.xxgc.ch06.test.ThrowDemo.main(ThrowDemo.java:23)
出错啦!不能大于10
扶苏
进程已结束,退出代码0
Java如何自定义异常?相关推荐
- 【零基础学Java】—自定义异常(四十八)
[零基础学Java]-自定义异常(四十八) 自定义异常类:java提供的异常类,不够我们使用,需要自己定义一个异常类 格式: public class XXXException extends Exc ...
- java中自定义异常类
java中自定义异常类 参考文章: (1)java中自定义异常类 (2)https://www.cnblogs.com/pecool/p/7967663.html 备忘一下.
- [转载] Java中自定义异常的声明与处理
参考链接: Java中的用户定义异常 #Java中自定义异常的声明与处理 ##一.编写自己的异常类需要注意 1.所有的异常都必须是Throwable 的子类: 2.如果希望写一个检查性异常类,则需要继 ...
- 如何编写和应用Java的自定义异常类
11.7.1 编写自定义异常类的模式 编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public class Cus ...
- java自定义异常实验总结,Java实验--自定义异常的使用
这几天有点小忙,都没时间更新博客了,今天趁着Java实验课,把做的这次实验放上去吧! 实验5 自定义异常的使用 a.在定义一个银行类Bank时, 有存钱deposit().取钱withdraw().显 ...
- java自定义错误码类_如何编写和应用Java的自定义异常类
11.7.1编写自定义异常类的模式 编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public class Custo ...
- java catch自定义异常_java异常类-java自定义异常-嗨客网
Java异常类教程 我们在 我们可以看到,在 Exception 表示的是程序中出现了问题,可以直接使用 try - catch 来捕获处理.Error 一般值 Java常见异常 类名 描述 IOEx ...
- Java异常处理-自定义异常
JDK里给我们内置了一套程序级别的异常体系,但是我们在业务开发过程中,我们可以自定义自己的一套关于业务性的异常体系,来满足程序的开发需求: 自定义异常要继承自Exception: /*** 自定义异常 ...
- 【博学谷学习记录】超强总结,用心分享 | 【Java】自定义异常
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,代码中少了一个分号,那么运行出来结果是提示是错误 java.lang.Error: 如果你用 System.o ...
- 【Java】自定义异常
自定义异常: java提供的异常类,不够我们使用,需要自己定义一些异常类 格式: public class XXException extends Exception|RuntimeException ...
最新文章
- 对AFNetworking的简单封装
- 【Java Web前端开发】web概念概述和HTML基础部分
- 计算机专业的书普遍都这么贵,Github上的计算机电子书很多~~~
- Exchange2003管理
- nacos服务配置中心演示
- 图数据库_ONgDB图数据库与Spark的集成
- mongodb 数组查询 php,关于PHP,查询mongodb里的数组的问题
- 解决mac安装homebrew后报错-bash: brew: command not found
- 最初级且依赖于硬件的计算机语言是,计算机基础复习大纲(整理版).doc
- moodeaudio 源码_MoodeAudio 音频播放器上手配置
- 如何成为一名卓越的数据科学家 ——七剑之一:问题定义
- C语言小游戏(flappy bird),附带源码及素材
- 无线射频识别问答习题
- Pyecharts之折线图与柱状图组合绘制
- IEEE邮件曝光,禁止华为员工审稿!
- 华硕主板固态硬盘不识别_[主板] 开机后无法识别硬盘或SSD的故障排除方式
- linux内核编译命令 理解,谢烟客---------Linux之理解内核、内核模块、编译内核
- 贝叶斯分类器(贝叶斯决策论,极大似然估计,朴素贝叶斯分类器,半朴素贝叶斯分类器,贝叶斯网)学习笔记
- android主流手机测试,硬件测试哪家强?安卓手机跑分软件横评
- react 中 ref 管理列表