如何自定义异常Java

这篇具有很好参考价值的文章主要介绍了如何自定义异常Java。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java中有自有的异常,例如,NullPointerException,ArithematicException,NumberFomatException,IndexOutOfBoundsException,OutOfMemoryException等等,这些事Java工程师定义的uncheckedException异常,是比较常见的异常,是运行时异常,同时也有checkedException这一类是编译时异常,是需要你在运行之前就需要处理的异常,例如,FileNotFoundException, IOException, SQLException,我们常见的处理方法是使用throws关键字和使用try{}catch(){}的方法,具体如何使用我们在下面讲解,但是由于业务多种多样,这些异常不可能涵盖每一种情况,这就需要企业自定义异常,Java同时也支持用户自定义异常,而自定义异常需要将创建的类名继承Exception关键字,这里我们默认是定义编译时异常,如果是想自定义运行时异常,则需要去实现RuntimeException,而大多数的业务的去定义编译时异常,下面是我自定义的一个异常,如图

java 自定义异常,java,开发语言

 自定义编译时异常一般是通过使用有参构造方法去调用父类的有参构造方法,父类有参构造方法(Exception),再去调用最终级的Throwable类,我们可以通过去观察FileNotFoundException是否是这种流程,如图

java 自定义异常,java,开发语言

java 自定义异常,java,开发语言

 java 自定义异常,java,开发语言

java 自定义异常,java,开发语言

 情况确实如此,无论是在Java自带异常还是,用户自定义异常,他们都是去掉用父类有参或者无参构造方法,异常这种一层一层的去调用父类构造方法,是异常发生的基本流程,最终干实事的是最终类Throwable,所以上述的我的自定义的异常是符合异常的基本规范的,最后的是如何去使用自定义的编译时异常去规范我们的程序呢,下面是我对异常的使用,如图

java 自定义异常,java,开发语言

java 自定义异常,java,开发语言

下面时控制台输入,如图

java 自定义异常,java,开发语言

 对于一些业务,我们不允许出现年龄小于零的情况,就可以使用这种自定义的编译时异常去规范,也可以起到提醒是效果,可以注意到,我在上面用到了两个关键字一个是throws,一个是throw,前者是出现在方法标签上面是用类抛异常类的,这些异常类是throw所抛的异常类,而后者是用来抛异常类对象的,这异常类的构造方法,我传参为"年龄不得为零",当异常抛给了调用者,调用者再次去抛给main()方法,mian()方法再次将异常抛给JVM,JVM最终会终止程序,这也就是为什么后面的"java"并没有在控制台上输出,然后在控制台上打印出栈信息,可以看到上面有"年龄不得为零"的字符串,我们可以发现如果出现了异常,那么程序就会终止,如果后面还有业务的话,这显然对于一个程序的运行是不友好的,Java中还提供了一种方法也就是上面谈到的try{}catch(){}方法,这种方法可以将异常给抓住,自行解决而不传给JVM,这就大大的提高了程序的效率,下面是修改后的代码,如图

java 自定义异常,java,开发语言

 下面是控制台输出java 自定义异常,java,开发语言

 我们可以开到上面可以将"java"字符串打印出来,这就以为者异常并没有抛给JVM而是自行解决,在控制台上打印出栈信息,但是,我们有时使用并不需要打印完全的栈信息,我们就只需要"年龄不得为零"这一个信息,这就需要我们去调用另一个方法,getMessage(),这个方法是属于最终类Throwable的,如图

java 自定义异常,java,开发语言

 下面是他的具体用法,如图

java 自定义异常,java,开发语言

下面是控制台输出,如图

 java 自定义异常,java,开发语言

这样看是不是舒服多了,自定义编译时异常的功能用处广泛,应用的方向广泛,也体现Java高度面向对象的包容性。文章来源地址https://www.toymoban.com/news/detail-855909.html

到了这里,关于如何自定义异常Java的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 安卓开发语言kotlin与Java该如何选择

            如今在Android开发中,应用层开发语言主要是Java和Kotlin,Kotlin是后来加入的,主导的语言还是Java。kotlin的加入仿佛让会kotlin语言的开发者更屌一些,其实不然。         有人说kotlin的引入是解决开发者复杂的逻辑,并且对空指针控制的比较友好,但是我们在开

    2024年02月11日
    浏览(61)
  • Spring Boot 如何自定义异常处理器

    在Spring Boot应用程序中,异常处理是一个非常重要的方面。如果您不处理异常,应用程序可能会崩溃或出现不可预料的行为。默认情况下,Spring Boot将未捕获的异常返回给客户端。这通常不是期望的行为,因为客户端可能无法理解异常信息。在本文中,我们将介绍如何在Sprin

    2024年02月06日
    浏览(42)
  • 详解Java中的异常体系结构(throw,throws,try-catch,finally,自定义异常)

    目录 一.异常的概念 二.异常的体系结构 三.异常的处理 异常处理思路 LBYL:Look Before You Leap EAFP: It\\\'s Easier to Ask Forgiveness than Permission 异常抛出throw 异常的捕获 提醒声明throws  try-catch捕获处理 finally的作用 四.自定义异常类 有一句话说的很好 ”程序员不是在写BUG就是在改BUG”

    2024年02月05日
    浏览(41)
  • Java语言----异常处理(看了必会)

    目录 一.异常的概述 二.异常类的层次结构和种类 二.异常的基本用法 2.1异常的捕捉 2.2异常处理代码实现 三.抛出异常 3.1 throw 3.2 throws 四.finally的进一步详解 五.自定义异常类 总结 😽个人主页:tq02的博客_CSDN博客-C语言,Java领域博主  🌈理想目标:努力学习,向Java进发,拼搏

    2023年04月11日
    浏览(58)
  • 开发过程中空指针异常如何规避?

    if(status.equals(SUCCESS)){ } 这个时候 status 可能为 null 造成空指针异常,应该把常量放前面,就能避免空指针异常。 if(SUCCESS.equals(status)){ } 这个应该在各种开发规范里面都会提到,也是最基础的。 在对象初始化的时候给它一个默认值或者默认构造实现,如: User user = new User(); S

    2024年02月03日
    浏览(39)
  • 阿里Java开发手册~异常处理

    1. 【强制】 Java 类库中定义的一类 RuntimeException 可以通过预先检查进行规避,而不应该 通过 catch 来处理,比如: IndexOutOfBoundsException , NullPointerException 等等。 说明: 无法通过预检查的异常除外,如在解析一个外部传来的字符串形式数字时,通过 catch NumberFormatException 来实现

    2024年02月15日
    浏览(35)
  • Java 异常处理以及如何捕获和处理多个异常

    在Java中,我们使用异常处理程序组件try,catch和finally块来处理异常。 为了捕获和处理异常,我们将try...catch...finally代码块放置在可能产生异常的代码周围。finally块是可选的。 try...catch...finally的语法为: 可能会生成异常的代码放在try块中。 每个try块后面应紧跟着catch 或 fi

    2024年02月14日
    浏览(41)
  • idea插件开发-自定义语言00-开发导航

     源码 Initial Setup(初始化设置) ​​Registering a File Type​​​ :注册文件类型要实现一个自定义的语言必须要实现的,​​示例代码​​ ​​Implementing Lexer实现​​ :实现编程语言的语法分析器,​​示例代码​​ ​​Implementing Parser and PSI​​​:实现一个词法分析器

    2024年02月12日
    浏览(33)
  • Java 开发中常见的异常有哪些?

    1、空指针异常(NullPointException):当对象不存在,却又去调用对象的属性或方法时,就会出现该异常 2、数组越界异常(ArrayIndexOutOfBoundsException):当数组只存在5个元素,他们所对应的的下标即为0-4,如果访问数组下标为5的元素时,就会提示该异常,原因是该位置元素不存

    2024年02月04日
    浏览(40)
  • 瑞_Java开发手册_(二)异常日志

    🙊前言:本文章为瑞_系列专栏之《Java开发手册》的异常日志篇,本篇章主要介绍异常日志的错误码、异常处理、日志规约。由于博主是从阿里的《Java开发手册》学习到Java的编程规约,所以本系列专栏主要以这本书进行讲解和拓展,有需要的小伙伴可以点击链接下载。本文

    2024年01月16日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包