提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、异常分为哪几种?
  • 二、使用步骤
    • 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如何自定义异常?相关推荐

  1. 【零基础学Java】—自定义异常(四十八)

    [零基础学Java]-自定义异常(四十八) 自定义异常类:java提供的异常类,不够我们使用,需要自己定义一个异常类 格式: public class XXXException extends Exc ...

  2. java中自定义异常类

    java中自定义异常类 参考文章: (1)java中自定义异常类 (2)https://www.cnblogs.com/pecool/p/7967663.html 备忘一下.

  3. [转载] Java中自定义异常的声明与处理

    参考链接: Java中的用户定义异常 #Java中自定义异常的声明与处理 ##一.编写自己的异常类需要注意 1.所有的异常都必须是Throwable 的子类: 2.如果希望写一个检查性异常类,则需要继 ...

  4. 如何编写和应用Java的自定义异常类

    11.7.1  编写自定义异常类的模式 编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public class Cus ...

  5. java自定义异常实验总结,Java实验--自定义异常的使用

    这几天有点小忙,都没时间更新博客了,今天趁着Java实验课,把做的这次实验放上去吧! 实验5 自定义异常的使用 a.在定义一个银行类Bank时, 有存钱deposit().取钱withdraw().显 ...

  6. java自定义错误码类_如何编写和应用Java的自定义异常类

    11.7.1编写自定义异常类的模式 编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public class Custo ...

  7. java catch自定义异常_java异常类-java自定义异常-嗨客网

    Java异常类教程 我们在 我们可以看到,在 Exception 表示的是程序中出现了问题,可以直接使用 try - catch 来捕获处理.Error 一般值 Java常见异常 类名 描述 IOEx ...

  8. Java异常处理-自定义异常

    JDK里给我们内置了一套程序级别的异常体系,但是我们在业务开发过程中,我们可以自定义自己的一套关于业务性的异常体系,来满足程序的开发需求: 自定义异常要继承自Exception: /*** 自定义异常 ...

  9. 【博学谷学习记录】超强总结,用心分享 | 【Java】自定义异常

    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,代码中少了一个分号,那么运行出来结果是提示是错误 java.lang.Error: 如果你用 System.o ...

  10. 【Java】自定义异常

    自定义异常: java提供的异常类,不够我们使用,需要自己定义一些异常类 格式: public class XXException extends Exception|RuntimeException ...

最新文章

  1. 对AFNetworking的简单封装
  2. 【Java Web前端开发】web概念概述和HTML基础部分
  3. 计算机专业的书普遍都这么贵,Github上的计算机电子书很多~~~
  4. Exchange2003管理
  5. nacos服务配置中心演示
  6. 图数据库_ONgDB图数据库与Spark的集成
  7. mongodb 数组查询 php,关于PHP,查询mongodb里的数组的问题
  8. 解决mac安装homebrew后报错-bash: brew: command not found
  9. 最初级且依赖于硬件的计算机语言是,计算机基础复习大纲(整理版).doc
  10. moodeaudio 源码_MoodeAudio 音频播放器上手配置
  11. 如何成为一名卓越的数据科学家 ——七剑之一:问题定义
  12. C语言小游戏(flappy bird),附带源码及素材
  13. 无线射频识别问答习题
  14. Pyecharts之折线图与柱状图组合绘制
  15. IEEE邮件曝光,禁止华为员工审稿!
  16. 华硕主板固态硬盘不识别_[主板] 开机后无法识别硬盘或SSD的故障排除方式
  17. linux内核编译命令 理解,谢烟客---------Linux之理解内核、内核模块、编译内核
  18. 贝叶斯分类器(贝叶斯决策论,极大似然估计,朴素贝叶斯分类器,半朴素贝叶斯分类器,贝叶斯网)学习笔记
  19. android主流手机测试,硬件测试哪家强?安卓手机跑分软件横评
  20. react 中 ref 管理列表

热门文章

  1. 阿里技术分享:电商IM消息平台,在群聊、直播场景下的技术实践
  2. vue2集成声网-环信即时通讯SDK,建议实现两人聊天
  3. 4月9日第壹简报,星期日,农历闰二月十九
  4. 实时多人点歌机器人 (来自网易云音乐)
  5. 【报告分享】2020中国出境旅游发展报告-中国旅游研究院(附下载)
  6. 期货开户无为的趋势跟踪
  7. NYOJ-备用2350 彩排(位运算)
  8. ID-51A Plus2的D-Star Terminal Mode发信
  9. 轩辕传奇服务器维护,《轩辕传奇》游戏服务器大更新
  10. 直线的倾斜角斜率和直线方程