蓉杠学习网

j***a语言处理,j***a语言处理不同类型流的类在什么包中

大家好,今天小编关注到一个比较意思的话题,就是关于java语言处理问题,于是小编就整理了2个相关介绍Java语言处理的解答,让我们一起看看吧。

  1. 如何深入理解java异常处理机制?
  2. 如何接手一个java烂摊子?

如何深入理解JAVA异常处理机制

J***a的异常处理机制是J***a语言的重要组成部分,要想理解J***a异常处理机制就先要从J***a异常处理的概念以及方式开始。在文章开始之前,我先给大家看一个程序

如果你能清晰的描述这个程序的运行结果,那么这篇文章就可以不用读了,否则就仔细的读一下。

java语言处理,java语言处理不同类型流的类在什么包中div>
图片来源网络,侵删)

J***a异常的概念是程序在执行过程中遇到不可预见的错误,这个概念中有两点需要关注,一点是“程序在运行过程中”,这说明程序本身的语法没有问题的,另一点是“不可预见的错误”,这就说明异常的产生具有一定的偶然性。

J***a的异常处理方式有两个大的机制一个是try-catch机制,另一个是throws机制。try-catch机制简单的说就是捕获并处理异常,try-catch的用法非常灵活,既可以分层处理异常,也可以嵌套处理异常,看一个例子:

当try体中产生异常的时候,系统就会跳转到catch体进行异常处理,在这个例子中一个大的try-catch中还嵌套了一个小的try-catch体来单独处理一部分语句的异常,同时外部的try体还定义了两个catch体与之匹配,分别处理不同的异常。注意,在排列的时候要注意顺序,因为catch在处理异常的时候是就近匹配的,当程序匹配到一个catch体之后就不再继续往下匹配了,所以一定要把Exception异常放到后面,否则其他的catch体就起不到作用了。

java语言处理,java语言处理不同类型流的类在什么包中
(图片来源网络,侵删)

接下来就要看一下throws和throw这两个关键字的作用了,简单的说throws是声明异常,而throw是抛出异常对象。看一个例子:

注意throws的位置方法的声明处,而throw则在方法体内,throws后面跟的是异常的类型,而throw后面跟的则是异常的对象。注意在catch体内的throw语句虽然也会抛出一个异常,但是此处的异常并不会抛出到方法外部,这是一个需要注意的地方,看一个例子:

这个例子我们可以看到Foo方法并没有声明异常,程序依然可以运行,但是程序的第20行语句并不会得到执行,原因是程序在第11行由于throw e而退出了。

java语言处理,java语言处理不同类型流的类在什么包中
(图片来源网络,侵删)

通常情况下,当一个方法声明异常时,所有调用这个方法的方法要么处理这个异常,要么继续声明,不能视而不见,简单的说,就是异常在传递的过程中不能无缘无故的消失,这是保证程序健壮性的一个非常重要的机制。

接下来就是自定义异常了,自定义异常有三个特点,分别是自己定义、自己抛出、自己处理,系统并不会抛出用户的自定义异常,看一个例子:

异常机制是J***A中比较常用特性

一般的程序因为网络延迟,参数错误,类型转换等总是会有多种各样的异常,而J***A封装了统一的异常处理,为J***A程序的异常提供统一的处理方式!

J***A异常机制是怎么样的呢?

所有的异常类都继承自throwable父类,分为分为两大类,分别是Error(错误)和Exception(异常),Error通常是我们不需要关心的虚拟机,内存等错误,而exception分为运行时异常(RuntimeException)和非运行时异常!

style="font-weight: bold;">运行时异常通常有:NullPointerException,IndexOutOfBoundsException,这些异常在编译器是虚拟机检测不出来的,只有在运行时期才会抛出,这类异常通常由编程人员自己制造,也只能自己避免!

非运行时异常通常有:IOException,SQLException等等,这类异常通常在编译期就提示错误,通过IDE出现提示,一般容易避免!

代码中出现异常怎么处理呢?

1,抛出:使用throw抛出给上一层进行处理,如果没进行处理则继续往上抛出!

2,捕获:使用try catch finally语句,将在try语句块中捕获的异常在catch中集中处理,而f***ly是保证异常处理永远会执行的机制,可用于释放***(文件流,数据库连接等)!

怎么在程序中避免异常?

异常实际上是一个判断语句,但是它又与一般的判断语句不一样。

因为别的判断语句可以自己控制,它异常不行,它一般是对硬件上未可以知的判断。

比如你的程序正确,但是你不知道网络是不是通的, 所以你只好预防,只要网络不通,我的程序就出现异常判断出来,这样看起来,写得程序比较专业

内存或其它硬件也差不多是一样的情况!

如何接手一个j***a烂摊子?

那要看项目规模以及到底有多烂,如果功能不超过十几个且业务逻辑不复杂的话,可以尝试按照模块重构;如果项目庞大并且真的是够烂的话,让他继续烂下去可能是最好的选择,千万别琢磨重构什么的,没有大量的人力、物力、财力支撑,你会把自己玩到跳楼。所以让它烂下去,对修改的功能、代码严格把关,确保不出大的、严重的、毁灭性的问题,支撑到有投入可以进行系统升级或者[_a***_]换代,你的使命也就完成了。

作为一名程序员可能最不愿意遇到的事情就是接手一个“烂摊子”。半路接手项目的原因有很多,有的是项目进展到一半,核心开发人员整体调离,有的原因是开发人员离职等。而所谓的“烂摊子”往往有一些显著的特点,比如没有需求分析文档、没有流程图、代码没有注释、逻辑混乱、bug比功能多等等。

从事软件编程以来,我也曾经半路接手过不少项目,有的代码写的非常工整,尤其是J***a项目,大部分都非常规整,这是J***a语言自身的特点。

但是,也有的J***a项目写的并不规整,需要耗费比较长的时间才能厘清逻辑关系,在接手这样的项目时,往往要做好以下几个方面的事情:

第一,对代码的整体结构进行分割。再乱的代码也是有模块(包)的,这是J***a语言的特点所决定的,所以就可以按照功能模块进行切割,分别整理并加上标注。

第二,封装核心部分代码。把已经完成的没有逻辑问题的代码给整体封装出来,厘清其中的逻辑关系和设计思路,尤其是其中的接口部分。因为后续的开发工作要在这个基础上进行,所以要把这部分内容搞清楚。

第三,逐步处理问题代码。把未完成的部分和有bug的部分进行依此整理,最好是找出一个功能主线,然后一步一步的处理。当处理到这个阶段的时候,基本上这个“烂摊子”已经差不多快处理完了。

在处理别人代码的时候一定要把注释加全,越详细越好,这样再回头查看的时候会节省很多时间。有的代码一看就知道是什么思路的就可以不用写的那么详细,因为现在的J***a代码在很多功能的设计上,思路还是比较统一的。

我使用J***a的时间比较久,目前也在带J***a开发团队,我会陆续在头条上写一些关于J***a开发方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。

如果有J***a开发方面的问题,也可以咨询我。

谢谢!

到此,以上就是小编对于j***a语言处理的问题就介绍到这了,希望介绍关于j***a语言处理的2点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/25091.html

分享:
扫描分享到社交APP