try{

......

}catch(......){

}finally{

......

}

这个结构是用来处理Java所有可能出现的异常的,这个我很早其实就已经学过,不过最近看了个视频,感觉自己虽然明白这里边的东西都是什么时候执行的,但是还是不太清楚每一块具体要实现怎样的一个功能。

下面我具体说一下:

    一、首先,先说一下try块,try块里存放的是可能会出现问题的代码,对于Java编程来说,我们经常考虑不到哪里可能会出现错误,尤其是在一些代码中,它并不是总会出现错误,对于有些数据,它可以通过,但是有些数据就不行了,这些数据有些能看出来是哪里除了问题,有些看似好像并没有什么规律,对于这种问题有一个名字,叫做运行时异常,我还记得以前的时候,我经常会因为代码的问题责怪编译器,经常把错误归咎到编译器上,相信很多程序员会和我有同感,但是时间久了,我发现真的是自己too young,too naive,有些错误真的是我们自己犯下的,谷歌很聪明,他知道我们以后会遇到这种类似的问题,这个try块就是根据代码可能出现问题添加的,其实吧,之所以要加这个try-catch这个东西,我现在是这么理解的,其实这个并不是帮助我们调代码的,这个是要根据不同情况修改代码的,因为一旦我们的代码遇到错误,他就会停在那里了,就像是一个人,我们是他的父母,我们教育了他很久,结果他因为犯一个错误,想不开自杀了,这个不是我们希望见到的,我们希望他把错误改了就是了,不要产生更大的错误,对于怎么改我们继续下面的内容,这个就涉及到catch的事情了,简单来说,try块就是我们做父母的感觉孩子可能会出问题的地方(还记得有一个笑话讲的就是有一种热叫做妈妈觉得孩子热)。

    二、对于代码来说,一般代码犯下的错误一般都是可以弥补的,弥补错误的过程就是写在catch里的内容,catch可以写好几个,每个catch有一个参数,指明这个是程序可能出现的错误的类型,对于不同的错误,我们方便写出不同的处理,问题就解决了,程序就可以正常继续进行下去了。最坏的情况,比如说孩子犯了一个错误,一个劲的要自杀,我们做父母的还不知道他犯得是啥错误(他也不告诉我们),我们只能说,想开点,即便错误弥补不了,但这个坎必须得过,不能自杀(我们所说的自杀就是程序运行到错误,运行不下去,停止了),这个问题衍伸到程序里就是程序出错了,然而我们并不知道到底出了什么错误,这个时候我们可以通过catch检查Exception这个类型的错误,这个感觉有点像是玩赖,程序出错了,我们这样一句代码,就是说我们知道了,回到刚才的比方,孩子犯错误了,我们就说了一句话,没事,孩子也没改,就继续下去了,这样比较危险,所以一般没有这么用的,从Java内部来说,对于面向对象的这种语言,他有着严格的层次关系,里边有父类,有子类,Java规定每个类只能继承一个父类,这就意味着一个类可以有多个子类,但只能有一个父类,Exception这个类就是这样,他是所有异常类的父类,所以一提他全好使,但是由于不清楚具体是什么异常,所以很难对异常进行处理,前面问题都处理的差不多了,按理说我们处理的够用了,没错,程序写完这两个可以不写第三个,然而,第三个什么时候会用到呢,下面我们就要说。

    三、程序运行完了查找异常,解决异常,到了这里,好了没什么事情可做了,然而有些时候,有些问题无论如何都要处理,不管有没有异常出现,都需要处理(比如说流的关闭,连接的关闭,对象的销毁,资源的回收),这些时候,finally(终结者)来了,他来处理这些必须做的事情。(这个就像刚才的例子里,如果孩子不管犯了错误,还是没犯错误,我们都应该给他饭吃,这个使我们的义务)。

  哦了,这个就是我对Java的try-catch-finally异常处理的理解。

对try-catch-finally异常处理的最新理解的更多相关文章

  1. [转] C++ try catch() throw 异常处理

    原文地址 其它很多程序员一样,本书的主人公阿愚也是在初学C++时,在C++的sample代码中与异常处理的编程方法初次邂逅的,如下:   // Normal program statements  . ...

  2. [math] 我对对数的最新理解

    前言 作为资深学渣,每次遇到对数就极度恐慌.恐慌不是因为要考试---.而是因为不理解,只能靠死记硬背运算规则.不能进行有效的推理,这让我极度不爽,因为会忘记.故惶恐. 所以总是耿耿于怀,想要试图理解对 ...

  3. 谈谈你对Java异常处理机制的理解

    先谈谈我的理解:异常处理机制可以说是让我们编写的程序运行起来更加的健壮,无论是在程序调试.运行期间发生的异常情况的捕获,都提供的有效的补救动作,任何业务逻辑都会存在异常情况,这时只需要记录这些异常情况 ...

  4. Java异常处理机制 —— 深入理解与开发应用

    本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...

  5. [Javascript] Try...Catch和异常处理

    在JavaScript可以使用try...catch来进行异常处理.例如:  try    {     foo.bar(); }   catch  (e)   {     alert(e.name  ...

  6. 面向对象的异常处理之深入理解java异常处理机制

    什么是异常? 异常是对问题的描述,将问题的对象进行封装: 异常体系的特点:异常体系中的所有类以及建立的对象: 都具有可抛性,也就是说可以被throw和throws关键字所操作,只有异常体系具有该特点: ...

  7. JavaScript中的try...catch和异常处理

    在JavaScript可以使用try...catch来进行异常处理.例如: try { foo.bar();} catch (e) { alert(e.name + ": " + ...

  8. 在java中的Try Catch块-------------异常处理(2)

    1. Try块是什么? Try块是一块可能产生异常的代码块,一个Try块可能跟着Catch块或者Finally块,或者两者. Try块的语义: try{ //statements that may c ...

  9. C++异常处理的深入理解

    1,问题: 1,如果在 main 函数中抛出异常会发生什么? 1,不处理,则崩溃: 2,如果异常不处理,最后会传到哪里? 3,下面的代码输出什么? 4,异常的最终处理编程实验: #include &l ...

随机推荐

  1. AngularJS进阶(十七)在AngularJS应用中实现微信认证授权遇到的坑

    在AngularJS应用中集成微信认证授权遇到的坑 注:请点击此处进行充电! 前言 项目开发过程中,移动端新近增加了一个功能"微信授权登录",由于自己不是负责移动端开发的,但最后他 ...

  2. Android ORM 框架之 greenDAO

    前言 我相信,在平时的开发过程中,大家一定会或多或少地接触到 SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写 SQL 语句与解析查询结果等.所以,适用于 Android 的ORM  ...

  3. x265 (HEVC编码器,基于x264) 介绍

    x265要出来了.简单翻译了一下项目网站首页的介绍. x265是一个开源项目,是一个将视频编码为h.265/高效率的视频编码(HEVC)格式的免费的库,在GNU GPL条款下发布.它的源代码是免费提供 ...

  4. 史上最全Android Studio快捷键 -2016-02-28

  5. 多Region下HBase写入问题

    最近在集群上发现hbase写入性能受到较大下降,测试环境下没有该问题产生.而生产环境和测试环境的区别之一是生产环境的region数量远远多于测试环境,单台regionserver服务了约3500个re ...

  6. linux设备驱动程序--类class的实现

    #include <linux/module.h> #include <linux/fs.h> #include <linux/sched.h> #include ...

  7. java安全——BASE64

    这个主题主要是关于java安全的,应该来说算是个大杂烩吧,但是又不缺乏实用性,算是作为一个总结,用的时候可以作为参考. 1.使用BASE64加解密 在java加密技术中,BASE64算是一种最简单.最 ...

  8. MySQL 8 新特性之Invisible Indexes

    背景 索引是把双刃剑,在提升查询速度的同时会减慢DML的操作.毕竟,索引的维护需要一定的成本.所以,对于索引,要加上该加的,删除无用的.前者是加法,后者是减法.但在实际工作中,大家似乎更热衷于前者,而 ...

  9. Go中string转[]byte的陷阱

    Go中string转[]byte的陷阱html {overflow-x: initial !important;}#write, body { height: auto; }#write, #writ ...

  10. 2T以上的盘怎么分区, 利用parted创建 linuxTB硬盘GPT分区

    parted创建GPT分区(fdisk不支持创建GPT分区,GPT支持大于2TB分区,MBR不支持) 介绍2种分区表: MBR分区表:(MBR含义:主引导记录) 所支持的最大卷:2T (T; tera ...