Java异常处理

大家好,我是IT修真院深圳分院第5期学员,一枚正直善良的JAVA程序员。

今天给大家分享一下,修真院官网JAVA任务1中,深度思考部分的知识点——Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?

一、背景介绍

1、什么是异常

异常就是程序运行中出现的不正常情况,在Java代码中,异常出现就会阻止当前方法或作用域继续执行

2、Java异常处理机制

如果某个方法不能按照正常的途径完成任务, 就可以通过另一种路径退出方法。 在这种情况下会抛出一个封装了错误信息的对象。 此时,这个方法会立刻退出同时不返回任何值。 另外,调用这个方法的其他代码也无法继续执行, 异常处理机制会将代码执行交给异常处理器。



二、知识剖析

异常分类

1、检查型异常:例如java.lang.IOException 程序正确,但因为外在的环境条件不足而引发。例如程序视图打开一个不存在的远程端口或者是打开不存在的文件时,这不是程序本身的逻辑错误,很可能是远程机器名字错误(用户拼写的路径错误),这种异常Java编译器是要求强制处理的,如果不捕获这类异常,程序将不能通过编译。

2、(非检查型)运行期异常:java.lang.RuntimeException 意味着程序存在逻辑错误,比如数组越界,除数为0,入参不满足规范.....这类异常需要更改程序配置来避免。

3、错误:java.lang.Error 一般开发过程中不多见,遇到了也很难通过调试程序来解决。他的出现更多是源于环境的问题,错误在程序中无需处理,而由运行环境处理

这三个异常类的顶层都是java.lang.Throwable类,检查型异常,运行期异常,错误都是这个类的子类。



Java异常处理涉及到五个关键字,分别是:try、catch、finally、throw与throws

1.try:它里面放置可能引发异常的代码

2.catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块,可以有多个catch块。

3.finally:finally关键字保证无论程序使用任何方式离开try块,finally中的语句都会被执行,它相当于一个万能的保险,即使前面的try块发生的异常没有对应的catch块来捕获,finally块也能马上执行。

4.throw与throws都是将异常抛出,具体使用看代码



三、常见问题

1、如何使用这些关键字来对代码中的异常进行出处理呢?

2、Java也不可能做到穷举所有异常可能出现的情况,出现Java提供的异常类之外的异常该如何处理呢?



4.解决方案

1、代码演示关键字用法

2、自定义异常类



五、编码实战



六、扩展思考

异常机制在实际开发中使用时应该注意哪些地方呢?

1、处理异常。针对该异常采取一些行动,例如修正问题、提醒某个人或进行其他一些处理,要根据具体的情形确定应该采取的动作,所以很多时候调用printStackTrace()算不上已经“处理好了异常”。printStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程,但只提供了一些最基本的信息,未能说明实际导致错误的原因,同时也不易解读。 因此,在出现异常时,最好能够提供一些文字信息,例如当前正在执行的类、方法和其他状态信息,包括以一种更适合阅读的方式整理和组织printStackTrace提供的信息。

2、切忌用一个catch语句捕获所有的异常。最常见的情形就是使用catch(Exception ex)语句。在绝大多数情况下,这种做法不值得提倡。所以在catch语句中尽可能指定具体的异常类型,必要时使用多个catch。

3、如果程序用到了文件、Socket、JDBC连接之类的资源,即使遇到了异常,也要正确释放占用的资源。所以还要充分运用finally关键词

4、应尽量减小try块的体积,我们常常习惯把大量的代码放入单个try块,然后再在catch语句中声明Exception,而不是分离各个可能出现异常的段落并分别捕获其异常。这种做法为分析程序抛出异常的原因带来了困难,因为一大段代码中有太多的地方可能抛出Exception。

5、当执行循环的过程中抛出了异常,要仔细分析并全面考虑可能出现的异常以及这些异常对执行流程的影响,对已经输出但不完全的数据要做好应对措施,否则使用数据的人或者设备收到一份不完整的数据,却得不到任何有关这份数据是否完整的提示,网网比异常导致的系统停止运行带来的损失更大


七、参考文献

1.CSDN博客:http://swiftlet.net/archives/998

2.CSDN博客:http://blog.csdn.net/zxman660/article/details/7799827



八、更多讨论


Q1、finally关键词正确的使用姿势是什么?

3、如果程序用到了文件、Socket、JDBC连接之类的资源,即使遇到了异常,也要正确释放占用的资源。所以还要充分运用finally关键词

Q2、可以同时try住几个可能出现异常的位置吗?

4、应尽量减小try块的体积,我们常常习惯把大量的代码放入单个try块,然后再在catch语句中声明Exception,而不是分离各个可能出现异常的段落并分别捕获其异常。这种做法为分析程序抛出异常的原因带来了困难,因为一大段代码中有太多的地方可能抛出Exception。

Q3、还应该注意那些情况?

5、当执行循环的过程中抛出了异常,要仔细分析并全面考虑可能出现的异常以及这些异常对执行流程的影响,对已经输出但不完全的数据要做好应对措施,否则使用数据的人或者设备收到一份不完整的数据,却得不到任何有关这份数据是否完整的提示,网网比异常导致的系统停止运行带来的损失更大

今天的分享就到这里啦,欢迎大家提问和探讨!


小课堂视频

PPTPPT

感谢大家观看

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

作者:东

链接:https://www.jianshu.com/p/5def26bc258b

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容