Java异常的学习心得是什么

技术Java异常的学习心得是什么这期内容当中小编将会给大家带来有关Java异常的学习心得是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一. 异常机制异常机制是指当程序出现错误后,

本期,边肖将给大家带来一些关于Java异常的学习经验。文章内容丰富,从专业角度进行分析和叙述。看完这篇文章,希望你能有所收获。

一.. 异常机制

异常机制是指程序如何处理错误。具体来说,异常机制为程序退出提供了一个安全的通道。当错误发生时,程序执行的过程改变,程序的控制权转移到异常处理程序。

1.处理异常的方法。

处理异常的传统方式是函数返回一个特殊的结果来表示有异常(通常这种特殊的结果大家都知道),调用函数的程序负责检查和分析函数返回的结果。这有以下缺点:例如,如果函数返回-1,则意味着有异常,但如果函数确实返回了-1的正确值,则会出现混淆;可读性降低,程序代码与处理异常的代码混在一起;错误由调用程序进行分析,这需要客户端程序员对库函数有深刻的理解。

2.异常处理过程。

遇到错误,该方法立即结束,不返回值;同时,抛出一个异常对象。

调用此方法的程序不会继续执行,而是搜索能够处理异常并执行其中代码的异常处理程序。

第二,. 异常的分类

异常继承结构:基类是Throwable,Error和Exception继承Throwable、RuntimeException和IOException,具体的RuntimeException继承RuntimeException。

而RuntimeException及其子类成为未检查的异常,其他异常成为检查的异常。

1.每种异常的特征:

(1)错误系统。

错误类系统描述了Java运行系统中的内部错误和资源耗尽。应用程序不应该抛出这种类型的对象(通常由虚拟机抛出)。如果出现这种错误,除了让程序安全退出,别无他法。因此,在设计程序时,我们应该更加关注异常系统。

(2)例外制度。

异常系统包括运行时异常系统和其他非运行时异常系统。

(3)运行时异常

RuntimeException系统包括错误的类型转换、数组越界访问、试图访问空指针等等。处理RuntimeException的原则是,如果发生RuntimeException,一定是程序员的错。例如,您可以通过检查数组下标和数组边界来避免数组越界访问异常。

(4)其他(IOException等)。)

这种异常通常是外部错误,比如试图从文件末尾读取数据,这不是程序本身的错误,而是应用程序环境中的外部错误。

2.不同于C异常分类。

实际上,Java中的RuntimeException这个名字并不合适,因为任何异常都是在运行时发生的。(编译中的错误不是异常,换句话说,异常是为了解决程序运行中的错误。).

C logic_error相当于Java中的RuntimeException,而runtime_error相当于Java中非RuntimeException类型的异常。

三个. 异常的使用方法

1.为什么声明方法抛出异常?

方法是否引发异常与方法返回值的类型一样重要。假设该方法引发异常并未声明该方法将引发异常,则客户端程序员可以调用该方法,而无需编写代码来处理该异常。那么一旦出现异常,就没有合适的异常控制器来解决。

2.为什么总是检查抛出的异常?

RuntimeException和Error可以在任何代码中生成,不需要程序员抛出。一旦发生错误,将自动引发相应的异常。检查异常由程序员抛出,分为两种情况:客户端程序员调用抛出异常的库函数(库函数的异常由库函数程序员抛出);客户端程序员使用throw语句自己抛出异常。遇到错误,程序员一般无能为力。遇到RuntimeException,那么程序中一定有逻辑错误,应该修改程序(相当于一种调试的方法);程序员只关心被检查的异常,程序应该并且应该只抛出或处理被检查的异常。

注意:覆盖父类方法的子类方法不能比父方法抛出更多的异常。因此,有时在设计父类的方法时,会声明引发异常,但实现该方法的实际代码不会引发异常。这样做的目的是方便子类方法在覆盖父类的方法时抛出异常。

3.抛出了哪些异常?

对于一个异常对象,真正有用的信息是异常对象类型,而异常对象本身是没有意义的。例如,如果异常对象的类型是ClassCastException,那么类名就是* * *有用的信息。因此,在选择抛出什么异常时,最重要的是选择类名能够清晰说明异常的类。

异常通常有两个构造函数:一个是无参数构造函数;另一个是带有字符串的构造函数,除了类型名之外,它还将用作异常对象的附加描述。

创建您自己的异常:当Java中构建的异常不能清楚地解释异常时,您需要从创建它们。

己的异常。需要注意的是,***有用的就是类型名这个信息,所以不要在异常类的设计上花费精力。

4. 捕获异常

如果一个异常没有被处理,那么,对于一个非图形界面的程序而言,该程序会被中止并输出异常信息;对于一个图形界面程序,也会输出异常的信息,但是程序并不中止,而是返回用户界面处理循环中。

5. 异常处理做什么?

对于Java来说,由于有了垃圾收集,所以异常处理并不需要回收内存。但是依然有一些资源需要程序员来收集,比如文件、网络连接和图片等资源。

6. 应该声明方法抛出异常还是在方法中捕获异常?

原则:捕捉并处理哪些知道如何处理的异常,而传递哪些不知道如何处理的异常

7. 再次抛出异常,为什么要再次抛出异常?

在本级中,只能处理一部分内容,有些处理需要在更高一级的环境中完成,所以应该再次抛出异常。这样可以使每级的异常处理器处理它能够处理的异常。

8. 异常处理流程

对应与同一try块的catch块将被忽略,抛出的异常将进入更高的一级。

四. 关于异常的其他问题

1. 过度使用异常

首先,使用异常很方便,所以程序员一般不再愿意编写处理错误的代码,而仅仅是简简单单的抛出一个异常。这样做是不对的,对于完全已知的错误,应该编写处理这种错误的代码,增加程序的鲁棒性。另外,异常机制的效率很差。

2. 将异常与普通错误区分开

对于普通的完全一致的错误,应该编写处理这种错误的代码,增加程序的鲁棒性。只有外部的不能确定和预知的运行时错误才需要使用异常。

3. 异常对象中包含的信息

一般情况下,异常对象***有用的信息就是类型信息。但使用异常带字符串的构造函数时,这个字符串还可以作为额外的信息。调用异常对象的getMessage()、toString()或者printStackTrace()方法可以分别得到异常对象的额外信息、类名和调用堆栈的信息。并且后一种包含的信息是前一种的超集。

附言:以上纯属笔者java异常学习的个人心得,稍微整理的,也许有点混乱,也没有很好的逻辑顺序,不过还是希望大家或多或少能够从中得到自己的体会吧。

上述就是小编为大家分享的Java异常的学习心得是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

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

(0)

相关推荐

  • Ubuntu16.4如何安装Vivado Design Suite sdx2019.1

    技术Ubuntu16.4如何安装Vivado Design Suite sdx2019.1这篇文章主要为大家展示了“Ubuntu16.4如何安装Vivado Design Suite sdx2019.1”,内容简而易懂,

    攻略 2021年11月15日
  • 怎么煮挂面,如何煮面条,怎么煮面条

    技术怎么煮挂面,如何煮面条,怎么煮面条随便什么锅,只要能让水滚的就行(电饭煲也行),水滚后放面条(一般100克一碗面的样子,大碗可装500克水的),再就是加盐、加点生抽、味精就行了,见差不多了就尝一尝看有没有熟,这样最保

    生活 2021年10月26日
  • 如何编写一键统计数据库临时表空间和阻塞lock信息的Shell脚本

    技术如何编写一键统计数据库临时表空间和阻塞lock信息的Shell脚本这篇文章给大家介绍如何编写一键统计数据库临时表空间和阻塞lock信息的Shell脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助

    攻略 2021年11月29日
  • STM32 GPIO的原理、特性、选型和配置是什么

    技术STM32 GPIO的原理、特性、选型和配置是什么这期内容当中小编将会给大家带来有关STM32 GPIO的原理、特性、选型和配置是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

    攻略 2021年12月3日
  • MySQL表类型中如何查看数据库支出的存储引擎

    技术MySQL表类型中如何查看数据库支出的存储引擎这期内容当中小编将会给大家带来有关MySQL表类型中如何查看数据库支出的存储引擎,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、查看

    攻略 2021年11月9日
  • 如何修改mysql最大连接数

    技术如何修改mysql最大连接数本篇内容主要讲解“如何修改mysql最大连接数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何修改mysql最大连接数”吧!

    攻略 2021年12月2日