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. UML之包图

    包图是UML中用类似于文件夹的符号表示的模型元素的组合,系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中,使用包图可将相关元素归入一个系统,一个包中包含附属包.图表或单个元素.简单的来说, ...

  2. LeetCode之“字符串”:Valid Number(由此引发的对正则表达式的学习)

    题目链接 题目要求: Validate if a given string is numeric. Some examples: "0" => true " 0.1 ...

  3. C++之IO操作

    可参考自: C++之标准设备IO操作流 C++之预定义类型IO格式控制 C++之文件IO操作流

  4. 速度之王 — LZ4压缩算法(二)

    LZ4 (Extremely Fast Compression algorithm) 项目:http://code.google.com/p/lz4/ 作者:Yann Collet 本文作者:zhan ...

  5. LeetCode(68)-Compare Version Numbers

    题目: Compare two version numbers version1 and version2. If version1 > version2 return 1, if versio ...

  6. "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no freetype in java.library.path

    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no freetype in java ...

  7. 巨高兴,偶的文章 “如何在服务器上配置ODBC来访问本机DB2for Windows服务器”被推荐至CSDN博客首页

    非常高兴,偶的文章 "如何在服务器上配置ODBC来访问本机DB2for Windows服务器"被推荐至CSDN博客首页,截图留念.                  文章被推荐在C ...

  8. 面试题之C# 内存管理与垃圾回收

    面试题之C# 内存管理与垃圾回收 你说说C# 的内存管理是怎么样的 这句话我记了一个多礼拜了, 自从上次东北师大面试之后, 具体请看<随便扯扯东北师大的面试>. 国庆闲着没事, 就大概了解 ...

  9. Linux的关机详解

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

  10. 使用nginx sticky实现基于cookie的负载均衡

    在多台后台服务器的环境下,我们为了确保一个客户只和一台服务器通信,我们势必使用长连接.使用什么方式来实现这种连接呢,常见的有使用nginx自带的ip_hash来做,我想这绝对不是一个好的办法,如果前端 ...