java异常的思考与学习心得-初学者可以来看看
最近几日在学习java中的异常处理,颇费心思,自己也终于从一片迷云中走了出来,恰好看到前几天论坛里有一位bei7318的朋友曾经发帖问道:“什么抛出啊,引发啊?谁能说说异常的心得?”
却无人回应,刚好趁着周末,在这里好好总结一下学习异常的思路与心得,希望能帮到那些对异常感到困惑的朋友。
我开始学习异常时,就像我在http://topic.csdn.net/u/20111108/12/0e920587-6c7e-4153-9a89-5a31ae606ddd.html?52490
帖子中提到的方法一样,去学习,去研究。可是越学越觉得困惑。
翻阅了好几本书籍,发现了一个有趣的现象,大部分书籍对于异常描写的极其简单(一般这一章的篇幅也就在10几页左右),似乎除了那几个关键字(try,catch,throw,throws)等等的用法之外,便是提供一些自圆其说的“玩具”实例。
包括马士兵老师的教程也一样,总是觉得好像在某一个方面少了一些东西。
掌握语法并不难,熟练使用也没有问题(只要你代码敲得足够多),可是我心中并不舒服,在心中一片迷雾般的敲出一堆所谓的“正确”代码,实在有些郁闷。
这两天什么都没有做,一直在反反复复的《think in java 》关于异常,反反复复的压榨书中的每一句话,一直发散着自己的思维,试图找到什么东西类比起来。渐渐地,终于有了感觉,整理了思路,现在进入正题。顺便提一下,有时候多多发散一下思维,把一些抽象的概念联系到一些具体的事物身上,对于理解起来,好处很多。
即便发散以后,也许由于自己的境界水平不够,发散出来的定位并不是很准确,但是这是一种能力,还是要多多锻炼,试图与作者对话,这样子一旦有高手指点,便能很快进入状态,原因很简单,因为你思考过。
好了,现在进入正题,到底什么是异常处理机制。
我用自己概括的一句话来形容它,虽然我的话稍带一点调侃的政 治 色彩。
异常机制,是一个友好的,强制的,带有极强的“形式主义”色彩的一种处理机制。
现在由我来解释一番,大家就会明白了。
友好:指的是,对于程序库的使用者以及软件的使用者来说,当你运行软件,不能运行起来,有错误提示时,你的心情会舒服很多,起码你知道为什么不能运行是“文件不存在?”还是“格式错误!”。
关于友好这一点,基本所有的书籍与视频都提到了。
但是异常处理并不是因为要使程序变的友好而出现的机制。
程序员都是高傲的,很多人也许对这个机制不屑一顾,认为你用户干嘛吃饱了撑的非要打开一个不存在的文件。
然而, java设计者包括c++的设计者,他们煞费苦心设计出来异常机制的目的却是为了渐渐培养出一种程序员的责任感,而对于一个大型的,健壮的,可维护的程序而言,这份责任感就是关键了。
因此,这是强制性的。
不管你心中如何抱怨,只要你使用的是java语言,那么你就必须强制性的养成这样子的习惯。
这一点上,很多书籍都没有论及,或者是一带而过,而新手,往往对于异常机制存在的合理性感到疑惑。
大家通常都会迷惑,为啥非得用异常机制。
大部分的书籍与视频通常都是在默认异常机制存在的前提下,来教授大家怎么使用。可问题是,很多人连为什么要建立这样子的机制都由疑惑,还何谈真正的使用呢?
所以,当你疑惑的时候,不如想想我对异常机制下的定义,虽然不是非常精确,但是却足够你心知肚明的去理解了。
友好的,强制性的,带有形式主义色彩的处理机制。
所谓形式主义,意思是说,带有统一的语法规范,你只要明白了异常的存在性,那么经过熟练地练习,自然会使用异常处理机制了。
关于异常处理机制的从无到有地详细过程,以及如何运用角色扮演的方法来学习异常处理,稍后我会在我的博客上为大家演绎出来,但对于理解异常处理必要地存在性,我想大家在这里以及基本没有问题了。
理解了想法,大家便可以心知肚明的放心大胆的去练习了。
希望能帮到大家,谢谢!
------解决方案--------------------现在的情况是多数人对强制的checked exception不爽。
------解决方案--------------------嗯,学习了~~~!期待关于用法的博客~~~^_^
------解决方案--------------------