如何理解对Java的异常

技术如何理解对Java的异常这篇文章主要介绍“如何理解对Java的异常”,在日常操作中,相信很多人在如何理解对Java的异常问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解对Java

本文主要介绍“如何理解Java的异常”。在日常操作中,相信很多人对于如何理解Java的异常都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮助大家解决“如何理解Java的异常”的疑惑!接下来,请和边肖一起学习!

背景

无论是在工作中,还是在面试中,异常都是非常重要的。作为Java开发人员,有必要学习如何处理异常,哪些异常必须自己处理,哪些异常可以抛出等等。

生活中总有意想不到的惊喜和意外,我们的代码也是如此。

如何理解对Java的异常

如果你不明白,佛陀就不能保佑你。

今天,我们来谈谈Java异常。我们可以把Throwable作为Java异常的根类(祖先)。由于实现类太多,下面列出了一些常见的实现类。

如何理解对Java的异常

Error

错误:程序不需要处理的系统级错误和异常,是Java运行环境中的内部错误或硬件问题。

例如,内存资源不足。

对于这种错误,程序基本上无能为力,别无选择,只能退出运行。它由Java虚拟机抛出。

Exception

异常:表示需要被程序捕获或处理的异常。它处理由程序设计缺陷引起的问题或由外部输入引起的一般问题,这些问题必须由程序处理。

异常分为运行时异常和检查异常。

RuntimeException(运行时异常)

表示程序无法恢复的异常。原因通常是错误的操作。建议终止逻辑。因此,编译器不会检查这些异常。

CheckedException(受检查异常)

是程序可以处理的异常,也就是可以修复的异常(程序本身接受异常并进行处理),所以称为checked exception。

有两种方法可以处理已检查的异常:

当前的方法显然知道如何处理异常,所以程序应该使用try - catch代码块来捕获异常,然后在相应的catch模块中修复异常。

当前的方法不知道如何处理这个异常,所以当它应该被定义时,它声明它已经用完了。

如何理解对Java的异常

Throwable 类常用方法?

GetMessage()方法:在异常发生时返回详细信息。

GetCause()方法:获取导致当前可抛出异常的可抛出异常。

GetStackTrace()方法:获取Throwable对象封装的异常信息。

PrintStackTrace()方法:在控制台上打印。

请列出 5 个运行时常见异常?

NullPointerException

IndexOutOfBoundsException

ClassCastException

ArrayStoreException

BufferOverflowException异常

异常处理有哪些关键字?

抛出异常:抛出,抛出。

异常被捕获:尝试,捕获,最后。

如何理解对Java的异常

throw 与 throws 的区别 ?

Throw,用于在程序中显式抛出异常实例。

抛出,用于指示此方法中未处理的异常。每个方法都必须明确指出哪些异常没有被处理,以便方法的调用方可以防止可能的异常。最后,多个异常用逗号分隔。

异常处理中的Finally语句。

块的重要性?

不管程序是否发生了异常, finally 语句块都会被执行,甚至当没有catch 声明但抛出了一个异常时, finally 语句块也会被执行。

finally 语句块通常用于释放资源,如 I/O 缓冲区、数据库连接、释放锁等等。

异常使用方式

如何理解对Java的异常

异常处理规则

如何理解对Java的异常

如何自定义异常?

除了JDK定义好的异常类以外,在开发过程中我们也可以根据业务的异常情况自定义异常类。

用户自定义异常都应该继承Exception基类,如果用户想自定义Runtime异常,则应该继承RuntimeException基类。

定义异常时,通常有两个构造方法:

  • 无参构造方法

  • 有参构造方法,这个参数是字符串,这个字符串作为对该异常信息描述,也就是getMessage()方法的返回值(比如说:“用户密码有误”、“xx接口返回参数为空”等)。

不过在项目中可能没这么简单,可能还会对其进行再次封装。

但是基本上都是有两个参数:code+msg;

code:主要是对业务中的异常进行归类,结合Http的code来定义。

msg:主要是业务异常的信息提示。

如何理解对Java的异常

你们项目中的自定义异常类是如何封装的呢?不知道的就回去翻翻你们项目中的自定义是如何写的,这就把学习和实践结合起来了。

到此,关于“如何理解对Java的异常”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/43712.html

(0)

相关推荐

  • json基础及示例(json原理以及使用方法)

    技术如何实现json 相关操作本篇文章为大家展示了如何实现json 相关操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。//设置key valueJSONObject para

    攻略 2021年12月13日
  • 树莓派+motion安装摄像头怎么实现远程监控

    技术树莓派+motion安装摄像头怎么实现远程监控这篇文章给大家介绍树莓派+motion安装摄像头怎么实现远程监控,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 下面我们介绍如何来给树莓派装个USB

    攻略 2021年11月19日
  • 尼德兰,荷兰为什么改国名为尼德兰

    技术尼德兰,荷兰为什么改国名为尼德兰综合国外多家媒体报道,从2020年1月起,荷兰将把国名正式改称为尼德兰,改国名需花费32万美元尼德兰。好好的国名叫了这么多年,现在又花钱又麻烦,为什么非要改呢?(荷兰地图)原来,荷兰的

    生活 2021年10月22日
  • nebulagraph数据库性能测试(数据库nebulagraph)

    技术如何进行图数据库Nebula Graph 的数据模型和系统架构设计本篇文章为大家展示了如何进行图数据库Nebula Graph 的数据模型和系统架构设计,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详

    攻略 2021年12月20日
  • 数据结构学习总结算法设计---排序

    技术数据结构学习总结算法设计---排序 数据结构学习总结算法设计---排序hi,你好啊 今天是11月4号 大概这一次真的要结束了。但学习的道路是不会停下的哦。
    (1)若一组记录的排序码为(46, 79,

    礼包 2021年11月5日
  • LN3,若a=ln22 b=ln3

    技术LN3,若a=ln22 b=ln3b>a>ca/b=3ln2/2ln3=ln8/ln9<1,a<b
    b/c=5ln3/3ln5=ln243/ln125>1,b>c
    a/c=5ln2/2ln5=ln32/ln25>1,

    生活 2021年10月26日