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. Gradle 1.12用户指南翻译——第二十六章. War 插件

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  2. iOS监听模式之KVO、KVC的高阶应用

    KVC, KVO作为一种魔法贯穿日常Cocoa开发,笔者原先是准备写一篇对其的全面总结,可网络上对其的表面介绍已经够多了,除去基本层面的使用,笔者跟大家谈下平常在网络上没有提及的KVC, KVO进阶知 ...

  3. Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现

    Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...

  4. Linux - 设置Centos控制台模式的分辨率

    因为我的Centos是用VMware虚拟机安装的,所以这里和直接安装的Centos修改值不太一样. 修改文件: 注意是在启动的系统条目后面"quiet"字段的加上 vga=0x36 ...

  5. SoC嵌入式软件架构设计

    内存是SoC(System on Chip,片上系统)集成设计的重要模块,是SoC中成本比重较大的部分.内存管理的软硬件设计是SoC软件架构设计的重要一环,架构设计师必须要在成本和效率中取得平衡,做到 ...

  6. obj-c编程16:键值编码(KVC)

    我们可以借助obj-c中的键值编码(以后简称KVC,Key-Value Coding)来存取类的属性,通过指定所要访问的属性名字符串标示符,可以使用存取器方法来获取或设置类的属性.下面的例子,借助于K ...

  7. 推荐eclipse插件Properties Editor(转)

    Properties Editor 是一款properties文件编辑器. 需求:一般我们在做“国际化”功能时,我们需要properties中文表示方式用unicode表示.eclipse默认prop ...

  8. Android Studio布局等XML文件怎么改都恢复原状的问题

    编译时,XML布局文件报错,点击链接进去改,怎么改,一编译就恢复原状,这是什么原因,问题出在点击错误链接进的是中间生成XML文件,这个文件改动是没用的,需要改动原始layout文件才会生效.

  9. 兼容 Android 4.4 透明状态栏与导航栏

    http://www.apkbus.com/Android-163388-1-1.html?_dsign=73d41229 android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加 ...

  10. 二分查找算法的C++和PHP实现

    C++实现方式: #include<iostream> #include<stdlib.h>#include<algorithm> using namespace ...