【从零开始学习JAVA | 第三十一篇】异常体系介绍

这篇具有很好参考价值的文章主要介绍了【从零开始学习JAVA | 第三十一篇】异常体系介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【从零开始学习JAVA | 第三十一篇】异常体系介绍,【从零开始学习JAVA】,学习,java

前言:

        本文我们将为大家介绍一下异常的整个体系,而我们学习异常,不是为了敲代码的时候不出异常,而是为了能够熟练的处理异常,如何解决代码中的异常。

异常的两大分类:

【从零开始学习JAVA | 第三十一篇】异常体系介绍,【从零开始学习JAVA】,学习,java

 我们就以这张图作为线索来详细介绍一下Java中的异常:

1.Exceptions(异常)

在Java中,Exception(异常)是一种表示非致命错误或异常情况的类或接口。Exception通常是由应用程序引发的,可以被程序员捕获、处理或抛出。

Exception再分为两种类型:可检查异常(checked exception)非检查异常(unchecked exception)。

1. 可检查异常(Checked Exception):

  •     可检查异常在编译时就需要进行处理,否则编译器会报错。
  •     可检查异常通常表示程序可以预见和处理的异常情况。
  •     可检查异常必须通过try-catch语句块或者在方法签名中使用throws关键字进行处理。
  •     常见的可检查异常有IOException、SQLException等。

2. 非检查异常(Unchecked Exception):

  •     非检查异常在编译时不需要进行处理,程序员可以选择捕获和处理这些异常。
  •     非检查异常通常表示程序中发生的错误或逻辑错误。
  •     非检查异常不需要强制在代码中进行处理,但程序员可以自行处理。
  •     常见的非检查异常有NullPointerException、ArrayIndexOutOfBoundsException等。

Java中的异常处理机制使用try-catch-finally语句块来捕获和处理异常,并提供了一种结构化的方式来处理各种异常情况。在try块中编写可能会出现异常的代码,catch块中捕获并处理异常,finally块中编写无论是否出现异常都要执行的代码。

除了try-catch-finally,还可以使用throws关键字在方法签名中声明方法可能抛出的异常,以便调用该方法的代码能够适当处理异常。

总之,Exception是Java中用于表示各种非致命错误或异常情况的类或接口。通过Java的异常处理机制,程序员可以对可能发生的异常进行捕获、处理、抛出或传递,以保证程序的健壮性和可靠性。

在Java中,Error是指表示严重错误或系统异常的一种特殊类型的异常。与普通的异常(Exception)不同,Error通常是无法被程序员捕获或处理的,而是由Java虚拟机(JVM)自动处理。

2.Error(错误)

Error表示的是Java运行时环境发生了一些严重的问题,如虚拟机错误、内存溢出、线程死锁等,这些问题一般是由于系统级错误或者虚拟机的内部错误造成的。一旦发生Error,通常意味着程序的执行已经无法继续进行下去,因此它们被认为是致命的,不可恢复的错误。

常见的Error包括:

1. OutOfMemoryError:表示内存溢出错误,当程序需要的内存超过了虚拟机可提供的内存限制时,会抛出该错误。一般分为`HeapSpace`(堆内存)和`Metaspace`(元空间)两种类型。

2. StackOverflowError:表示栈溢出错误,当方法调用的深度超过栈的最大限制时,会抛出该错误。

3. NoClassDefFoundError:表示找不到类定义错误,当虚拟机或类加载器无法找到某个类的定义时,会抛出该错误。

4. LinkageError:表示链接错误,当在类的连接阶段发生问题时,会抛出该错误。如版本不匹配、依赖关系错误等。

虽然程序员在一般情况下不会对Error进行捕获和处理,但它们的存在是为了提醒程序员可能存在严重问题,或者在程序无法继续执行时提供适当的错误信息。通常情况下,当程序出现Error时,Java虚拟机会终止程序的运行,并输出错误信息。

需要注意的是,在开发中,程序员应当关注并避免由于编码错误或逻辑错误导致的各种异常和错误,尽可能编写健壮的代码,同时在必要的情况下对可能发生的异常进行适当的处理,以提高应用程序的稳定性和可靠性。

总结:

        本文我们介绍了两个常见的内容:一个是Error(错误),一个是Exception(异常)。而Error属于系统级别的错误,我们一般是不需要对其进行捕获和处理的,这是JAVA开发公司SUN需要进行修正的地方,而Exception是我们需要关注的异常,他又分为两大子类,我们也不需要详细记忆,只需要记忆一个大概的框架就好了。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

【从零开始学习JAVA | 第三十一篇】异常体系介绍,【从零开始学习JAVA】,学习,java文章来源地址https://www.toymoban.com/news/detail-614122.html

到了这里,关于【从零开始学习JAVA | 第三十一篇】异常体系介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【从零开始学习JAVA | 第三十三篇】File类

    目录 前言: File类: 构造方法: 常见成员方法: 总结:         本文我们将为大家介绍JAVA中一个比较使用的类:File类,他为我们提供了存储数据的功能,使得程序的数据不至于在运行结束之后就丢失,是一个很好的类。         File类是Java标准库中用于操作文件和目录

    2024年02月15日
    浏览(57)
  • 从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)

    当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。 java.io.Reader 抽象类是表示用于读取字符流的

    2024年02月08日
    浏览(45)
  • 【从零开始学习JAVA | 第三十五篇】IO流综合练习

    目录 前言: 1.拷贝文件(含子文件) 思路: 2.文件加密 思路: 3.修改文件中的数据: 思路: 总结:         在前面我们为大家介绍了FILE类和IO类。这篇文章我们来练习一些综合使用的例子以此来巩固我们自己的所学知识。 建立一个读文件的流来读取文件,一个写文件的流

    2024年02月14日
    浏览(52)
  • 【从零开始学习JAVA | 第二十一篇】常见API介绍 System

    目录 前言: System: System类中静态方法: 总结:                 system 是一个很底层的 API,是一个工具类, 提供了一些与系统相关的方法 。他在我们写项目的时候提供了一些非常实用的方法,本篇将会介绍一些实用的system API 的方法调用。 System类是Java语言提供的一个

    2024年02月15日
    浏览(61)
  • 【从零开始学习C++ | 第二十一篇】C++新增特性 (上)

    目录  前言: 委托构造函数: 类内初始化: 空指针: 枚举类: 总结:         C++的学习难度大,内容繁多。因此我们要及时掌握C++的各种特性,因此我们更新本篇文章,向大家介绍C++的新增特性。 委托构造函数是指一 个类的构造函数调用另一个类的构造函数,以减少代

    2024年02月13日
    浏览(69)
  • 【从零开始学习JAVA | 三十四篇】IO流

    目录 前言: IO流介绍: IO流的常见方法: 1.字节流类: 2.字符流类: 总结:                 IO流就是存入和读取数据的解决方案,并且他是一个知识点很多的章节,因此我们关于IO流的介绍会分为多篇来进行详解,而掌握好IO流可以大大提高我们的效率,简化我们的代码执

    2024年02月13日
    浏览(106)
  • 【从零开始学习JAVA | 三十九篇】深入多线程

    目录 前言:         ​1.线程的寿命周期​ 2.线程的安全问题 3.锁 同步代码块: 同步方法: 死锁: 4.生产者和消费者模式(等待唤醒机制) 总结:         当今软件开发领域中,多线程编程已成为一项至关重要的技能。然而,要编写出高效、可靠的多线程程序并不容

    2024年02月13日
    浏览(62)
  • 从零开始学习 Java:简单易懂的入门指南之反射(三十八)

    ​ 专业的解释: ​ 是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; ​ 对于任意一个对象,都能够调用它的任意属性和方法; ​ 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。 ​ 通俗的理解: 利用 反射 创建的对象 可

    2024年02月08日
    浏览(49)
  • 从零开始学习 Java:简单易懂的入门指南之线程池(三十六)

    当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程 状态被定义在了java.lang.Thread.State枚举类中,State枚举类的源码如下: 通过源码我们可以看到Ja

    2024年02月08日
    浏览(52)
  • 从零开始学习 Java:简单易懂的入门指南之线程同步(三十五)

    1.1卖票【应用】 案例需求 某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票 实现步骤 定义一个类SellTicket实现Runnable接口,里面定义一个成员变量:private int tickets = 100; 在SellTicket类中重写run()方法实现卖票,代码步骤如下

    2024年02月08日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包