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. 【面试笔试算法】Problem 1 : DP滑雪问题--网易互联网算法实习生2017笔试题

    Description Michael喜欢滑雪百这并不奇怪,因为滑雪的确很刺激.可是 为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  2. Picasso 图片加载库

    Picasso 英文意思国外一个很有名的画家毕加索的名字,国外项目取名还是很有意思的! 从github新下载的picasso项目有依赖其他第三方开源项目okhttp和okio,这两个项目也是相当经典的 ...

  3. 文档流 css中的float clear与布局

    文档流 先说说什么是文档流  流是什么 就是一串连续的东西 <div style="background-color:pink;width:40px;height:80px;" ...

  4. LeetCode之“动态规划”:Maximum Product Subarray

    题目链接 题目要求: Find the contiguous subarray within an array (containing at least one number) which has t ...

  5. HBase提供的工具

    1 .压缩测试工具   hbase org.apache.hadoop.hbase.util.CompressionTest   1G数据不同的压缩算法得到的结果 +----------------- ...

  6. 【编程练习】收集的一些c++代码片,算法排序,读文件,写日志,快速求积分等等

    写日志: class LogFile { public: static LogFile &instance(); operator FILE *() const { return m_file ...

  7. RubyMotion之父:Ruby是目前替代Objective-C的最佳iOS开发语言

    发表于2012-08-16 00:52| 21716次阅读| 来源CSDN| 24 条评论| 作者杨鹏飞 RubyMotionRubyObjective-CiOSJava 摘要:曾几何时,PC端有那么 ...

  8. 线程ava.lang.OutOfMemoryError: unable to create new native thread

    近日开发遇到多线程的问题: java.lang.OutOfMemoryError: unable to create new native thread Exception in thread &qu ...

  9. 新手入门vue 使用vue-cli创建项目

    本文是针对对于完全没有了解过vue 和npm,连运行环境和项目构建的都不会的小白,对于前端老司机的就不用看了,浪费时间. 使用npm 与vue-cli 构建vue 项目 第一步:安装运行环境(node ...

  10. Linux的关机详解

    Linux如果是关机不想Windows,特别是命令界面.如果使用的是虚拟机,我们经常通过虚拟机来关闭.有点笨重啊.着特意找到关于Linux关机命令分享给大家. 在linux下一些常用的关机/重启命令有 ...