保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

谈对程序开发中异常的理解和认识

  谈对程序开发中异常的理解和认识谈对程序开发中异常的理解和认识谈对程序开发中异常的理解和认识文章来源自3edu教育网
  从接触异常开始我就弄不明白她,不会用她,想在系统中是异常机制发挥的淋漓尽致,进行了很多尝试,利用异常控制程序流程,利用异常做数字的判断函数,利用异常消除系统中可能出现的恼人的异常提示框,为了更好了利用异常看了很多关于异常的文章,直到有一天看到了一句话永远不要去处理你不知道怎么处理的异常,这才恍然大悟,感觉自己一直在用强大的异常机制干一些旁门左道的是事,更谈不上理解异常在程序中的地位和意义,异常其实一种报告机制,她以一种不可回避的方式报告程序中所出现的问题,她帮助程序员走向正确的道路,她忠实的向程序员提供错误报告,她希望有谁能重视并处理掉她报告的问题,哈,真不敢想象,没有了异常机制该如何编制高质量的程序!下面就个人的理解和看法瞎说几句,敬请各位批评指正,不胜感激!
  异常的工作原理,在有问题的地方产生异常,马上停止当前的工作,转向异常处理代码,如果找不到异常处理代码,就会见异常向一层汇报,上一层接到异常会做同样的事,转向异常处理代码,或者再将异常向上汇报,这样逐层间错误传递出去,直到有一层处理了异常或是一直报告给程序的使用者用户。这个层就是调用栈,当用户A运行程序B,B从函数C开始执行,调用函数D,再调用函数E,再调用函数F,这时F出现了异常,那么这个异常的调用栈就是A(栈底)〉B〉C〉D〉E〉F(栈顶),这个异常就会沿着这个栈从栈顶开始向栈底的方向报告,如果在函数C中有对这个异常的处理代码,那么这个异常的报告链就是F〉E〉D〉C。可以看出,如果在完整的调用栈中没有处理这个异常的代码,用户A就成了异常报告的终点,向windows界面系统,会弹出一个恼人的消息对话框哈。
  那么用户A向谁报告呢,哈哈,这个已经不属于程序的范围了,感觉用会对程序而言好像上帝一样,诉说痛苦已经让上帝都听到了,就心满意足了哈哈,看来程序真虔诚哈哈。对于异常这个特性,也可以比喻成下属向上级报告问题,如果下属知情不报,问题就严重了,你要是领导知道下属是这样的八成就踢了他,相反如果你有一个报告机制健全的下属队伍,哈哈你就威风了。日本企业文蛤中有个宗旨联络,商谈,报告,其实就是想让员工都具有向上级汇报的习惯。现在再看看程序,哈哈,你不用给她们灌输什么企业文化,不用她们讲述什么报告的重要性,她们本身就是忠实报告的,如果把程序员比作企业老总,那么程序就是训练一队有素的员工。
  怎样处理异常。在这里有个原则就是永远不要去处理你不知道怎么处理的异常,
  也就是只处理你知道如何处理的异常,对那些你不知道的异常必须广开言路,并积极地向上级汇报。什么叫知道如何处理呢?先说一下处理异常有哪些方式,大体有,弹出提示消息框(这个消息框不同于那个恼人的异常报告消息框,她是捕获异常后,根据处理的具体环境程序员主动编写的友好的提示消息框),记录错误日志,吞掉,做善后工作等等,那么出现异常时就要站在出现异常的模块的立场上考虑一下我应该选择哪种处理方式呢?如果不能做出选择就选择不处理,即向上级报告。
  举个例子,函数Fun1是创建并返回一个活动的数据连接对象的方法,他接受一个数据库连接字符串,如果调用者(上级)给他一个错误的连接字符串,这时Fun1创建不了连接对象,产生了一个创建不了连接对象的异常,那么这时他应该怎样处理这个异常呢?弹出友好的消息框?说什么友好,Fun1根本就不知道是什么原因使他接收到了错误的连接字符串,弹一个连接字符串有误,用户肯定都有杀你的心,这个提示和用户的业务逻辑有嘛关系!记录错误日志,这个还行,但是记录下来的文字无非就是连接字符串有误,连接字符串是:SQL,好点的话,从连接字符串中看出了问题,一般情况下还得根据代码上下文去找问题原因。这个方式不是不行是不好。吞掉,哈哈开什么玩笑,你既创建不了连接,又不吱一声,想让调用者疯了呀,这个肯定不行。做善后工作,行,确实应该清理一下现场,免得浪费资源,但是还是没吱一声,所以这个方式做的不彻底。没招了,哈,其实上面的分析给我们指明了一条路,帮助我们祛除了错误的选择,这条路就是向上汇报,或是不加任何出来代码,或是记录日志,做些善后,再重新将异常抛出。
  那么什么时候就知道怎样处理异常了,这就得看实际的情况和用户的要求了,这句话等于没说,就像其他的标题醒目但给出的结论却模棱两可文章一样,哈哈,这里可以给几个建议,
  1,一般地,底层模块或是方法中不要处理异常,
  2,编写公共模块、DLL等是,不能采用弹出对话框等依赖于平台,框架的方式处理异常,
  3,编写公共模块、DLL等时,必须在使用文档中注明每个方法属性可能抛出的异常。
  4,永远不要写try这样的语句。
  {}catch(Exception){onothing}自定义异常。明白了异常的原理和机制后,就可以自己定义异常了,这样的实践往往在编写控件、公共模块、DLL等的时候,用错误编号在网上搜索一下,能找出一大堆关于错误代码的描述。其中大多数是M(icro)S(oft)制定的,MS从操作系统到各种各样的框架都有对各种异常的编号,对每种异常做出了详细的定义,如果你还用过像Spread等商业控件,也可以看到他里边的各种各样的异常定义,也就是说我们自己也可以定义异常,在必要的时候,这样就可以让自己写的模块也加入到训练有素的员工队伍中了。至于如何定义异常,具体的编成语言有具体的做法,比如C中指定一异常一个从Exception继承来的类,VB中异常是个全局变量等等,参见感兴趣语言的语法指南就可以了。
  对异常的重新认识,一直以来许多人都认为异常是非常可怕的,可恶的,她是错误的化身,她有恼人的弹出对话框,弄得用户跟凶煞恶神似的哈哈,其实这些都是误解,异常一直默默地忠实的报告着程序中出现的严重的不可回避的问题,她为了程序、系统的正确性、严谨性呼唤你,希望你重视这些问题,希望你用智慧解决这些问题,她是多么的可爱,又是多么的高尚,从来没有因为对她的误解而放弃自己的使命异常很重要,我们更好学会如何去使用她。

建筑工程施工质量管理方法(5篇)第一篇:建筑工程施工质量管理分析摘要:随着经济的发展,国民经济支柱行业之一的建筑业也呈现出了崭新的发展姿态。随着建筑业市场的发展,建筑工程的质量也引起了广泛关注和重视。建……建筑工程质量控制论文(3篇)第一篇:建筑工程项目桩基础施工质量控制要点分析摘要:随着我国经济的高速发展,各地都投入了大量的资金用于对基础设施等进行完善。在建筑工程的建设过程中,桩基础是其中最重要也是……i58250u适合玩游戏吗这款处理器不适合玩游戏,i58250u是英特尔面向移动平台推出的低压处理器,能够运行一些比较低性能需求简单画面的游戏,但运行大型游戏会比较吃力。i58250u适合玩游戏吗……针对中国传统园林叠山法与式方面的研究1引论:意义、概念与方法对法式问题的关注是传统设计营造研究中的一个理论传统,关系着对设计营造规律与技巧的基本认识,并对现实实践产生指导作用,比如对中国建筑史,就有着营造法……分析北京市水影响评价与建设海绵城市关系北京市水资源严重短缺,北京水务工作者为建设北京节水型城市做了诸多探索,水影响评价审查制度在北京实行2年后,北京市入选我国第二批海绵城市试点。水影响评价推动海绵城市理念的实施,同……简析新能源电动汽车废旧电池回收体系的设计1、动力电池的回收价值废旧动力电池含有的铅、镍以及酸碱电解质溶液不仅会对自然环境造成破坏而且会对人身安全构成威胁,然而废旧动力电池中又含有大量具有回收价值的金属如镍、锰、……关于中国铁路提速后技术进步对产出贡献的测算中国铁路自1997年第一次提速开始,铁路运输产品不断推陈出新,运输速度不断提高。中国铁路正沿着一条以技术进步为主导、以大规模固定资产更新改造为基本策略的模式发展。当前,我国正处……浅议京津冀一体化下新能源汽车问题研究1绪论1。1新能源汽车的发展背景国务院已提出了京津冀协同发展的国家战略,2015年4月30日这份《京津冀协同发展规划纲要》(以下简称纲要)已经得到中央政治局审议通过……电气节能技术与电力新能源的发展应用1、电力新能源发展的重要性首先,大力开展新能源可以处理能源危机、缓解运送严重局势。即便新能源短期内难以占有能源商场的首先比例,但却可以很大程度减轻用电压力,也可以很大程度……关于水利施工中混凝土裂缝的分析及控制1前言混凝土是水利施工的重要材料,其凝结效果直接影响着水利施工质量。受环境因素、温度因素、操作因素等的影响,水利工程施工过程中混凝土凝结冷却后非常容易出现裂缝,造成水利工……关于岩口水库岩溶渗漏除险加固防渗处理1工程概况岩口水库位于贵州省仁怀市火石岗乡团山村境内,距仁怀市城区57km。水库座落于桐梓河左岸一级支流石门坎沟上,库区四周高,中间低,地形封闭,为在岩溶洼地内利用粘土防……浅谈水库除险加固设计在新中国成立后,各个行业都需要大力发展,在水利工程方面的需求量也在逐渐加大。一些水库由于长久没有维修加固,存在着各种质量病害问题,对其自身的作用发挥也有着很大影响。加上水库建造……
课本之中有好米在语文学习中,许多人都认同得作文者得天下的观点,足见作文在语文学科中的重要地位。作文难在何处?用学生的话来讲,就是无话可说。在写作中,学生并不是不会思考,找不出观点,而是没有充……小学英语教学中实施自主教育初探〔摘要〕学生来到学校,不仅为了获取知识,更主要的是为了变得更聪明,那么教学中如何使学生变的更聪明呢?本文认为应充分调动学生积极性,发挥学生主体作用,即创设氛围,激发自主学习优化……浅析构建主动性的职校英语课堂论文关键词:主动性职校英语课堂构建论文摘要:职业学校学生英语基础普遍较差,激发职校生在英语课堂上的主动性对于营造充满生机活力的课堂氛围具有重要的意义。要调动起学生的主动性……i589三星手机三星i589手机怎么样三星手机在市场上叱咤风云多年,一提到三星,大家马上想到的应该就是三星手机。三星i589是一款2011年上市的智能3g手机,是一款可以进行双模双待的单通手机。很多人也许对这款手机……浅谈创新教育在化学教学中的应用21世纪的今天,互联网已成为时代的主旋律。信息时代的到来在改变世界的同时也改变了我们的生活。当今时代是创新的时代,要求我们要拥有更多的专业知识和技能,而创新能力与文化素质的结合……索尼LT22i的运存是多少索尼LT22i的运行内存为1GBRAM。索尼LT22i搭载的处理器为STEricssonNovaThorU85001GHz双核CPU,并内置运行内存1GBRAM,自带16……鼠标中键不能用小编给你支几招图文教程我们的电脑鼠标由于使用时间长了,在浏览网页或者是打游戏的过程中,鼠标常常会很不给力,甚至是鼠标根本按了没有反应。许多人认为这是鼠标的寿命到了,我们需要去更换一台新的鼠标了,其实……解读语文标准中小学语文教育历来受到全社会的普遍关注,新一轮基础教育课程改革中,语文课程标准的研制,是在系统总结我国语文教育的历史经验,吸收了国外母语课程标准研究的新成果,分析了语文教育的现……文言文中的使动意动为动在阅读文言文的过程中,常会遇到一些词类活用的情况,即有些词类由于使用的需要,会临时改变它的词性,起另一类词的作用。如果不能正确掌握它们的用法,理解它们的意思,就不能正确地理解、……运用现代信息技术随着时代的发展,科学技术的进步,人类已经进入了信息技术广泛运用的时代。目前,我国已经进入了全面推进素质教育的改革年代。素质教育与传统教育的根本区别在于,素质教育的实质是依……家庭教养方式研究进程透视家庭教养方式一直是发展心理学家研究儿童社会化问题时关注的重要课题。诸多研究表明,父母通过教养孩子的活动,影响孩子的社会性发展。上世纪40年代迄今,国内外心理学家不懈地运用实证研……培养学生想象能力浅探小学语文教学的一个重要任务,就是发展学生思维,培养学生的思维能力。而发展学生想象,则是培养学生思维能力的一个重要方面。所谓想象,是指在原有感性形象的基础上,创造出新形象的……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网