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)

相关推荐

  • Windows10安装MySQL(基于zip方式)

    技术Windows10安装MySQL(基于zip方式) Windows10安装MySQL(基于zip方式)环境
    操作系统:Windows10 家庭中文版(64bit)
    MySQL版本:mysql-5.7

    礼包 2021年12月21日
  • CentOS 6.5中如何搭建MySQL集群7.4

    技术CentOS 6.5中如何搭建MySQL集群7.4小编给大家分享一下CentOS 6.5中如何搭建MySQL集群7.4,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!各节点信息如下:管理节点:192.

    攻略 2021年11月15日
  • 分析DevOps生命周期

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

    攻略 2021年11月5日
  • 抖音刷浏览量,抖音刷评论是如何实现?

    技术抖音刷浏览量,抖音刷评论是如何实现?新注册的账号我们必须开始养号,并且前五个作品的发布很重要,不要乱发一些营销广告,这样会影响到你的账号权重。假如您的账户平均作品播放量低于100,那么就果断去换个账户吧。否则您使用此

    测评 2021年10月20日
  • 如何解决ios程序在ios5下出现黑屏的问题

    技术如何解决ios程序在ios5下出现黑屏的问题这篇文章给大家分享的是有关如何解决ios程序在ios5下出现黑屏的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 用xcode4.2生成的程

    攻略 2021年10月21日
  • 张僧繇怎么读,张僧繇的点睛之笔指的是什么

    技术张僧繇怎么读,张僧繇的点睛之笔指的是什么张僧繇是梁朝著名的画师。有一次,皇帝命令他在金陵安乐寺的墙壁上画龙。不一会儿,两条栩栩如生的龙就出现在墙壁上了。这时皇帝发现这两条龙都没有眼睛,就问张僧繇这是为什么。张僧繇回答

    生活 2021年10月30日