- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
异常处理演示文件修改版
1、简述异常的生成及处理过程 小测验: 第033课 异常处理 2、试着自己抛出一个异常并且处理. 对异常处理机制作简单描述,并且实现一次生成 抛出并处理的过程. 课后作业: 第033课 异常处理 * 发现错误的理想时机是在编译阶段,也就是在你试图运行程序之前.然而,编译期间并不能找出所有的错误余下的问题必须在运行期间得到解决.这就需要错误源能通过某种方式,把适当的信息传递给某个接收者,后者将知道如何正确处理这个问题. 解决的办法是,用强制规定的形式来消除错误处理过程中随心所欲的因素.这种做法由来已久,对 “异常处理”(exception handing)的实现可以追溯到六十年代的操作系统,甚至于BASIC语言中的 “on error goto”语句.此地异常处理机制基于Ada,java中的异常处理则建立在c++的基础之上(尽管看上去更像Object Pascal). “异常”(exception)这个词有 “我对此感到意外”的意思.问题出现了,你也许不清楚该如何处理,但你的确知道不应该置之不理;你要停下来,看看是不是有别的人或是在别的地方,能够处理这个问题.只是你在当前的环境(current context)中没有足够的信息来解决整个问题,所以你就把这个问题提交到一个更高级别的环境中,这里将有人作出正确的决定(有点像军队里的指挥系统). * 使用异常锁带来的另一个相当明显的好处是,她能使错误处理代码变得更有条理.与原先 “对于同一个错误,要在多个地方进行检查和处理”相比,你不必在方法调用处进行检查(因为异常机制将保证捕获这个错误).并且,你只需要在一个地方处理错误,既所谓的 “异常处理程序”(exception handler).这种方式不仅节省代码,而且把 “描述做什么事”的代码和 “出了问题怎么办”的代码相分离.总之,与以前的错误处理方法相比,异常机制使代码的阅读 编写和调试工作更加井井有条. 把异常情形与普通问题相区分很重要,这里的普通问题是指,你在当前环境下能得到足够的信息,总能处理这个错误.而对于异常情形,你就不能继续下去了,因为你在当前环境无法获得必要的信息来解决问题.你所能做的就是从当前环境中跳出,并且把问题提交给上一级别的环境.这就是抛出异常是所发生的事情. * 当你抛出异常后,有几件事会随之发生.首先,同java中其它对象的创建一样,将使用new在堆上创建异常对象.然后当前的执行路径(你不能继续下去了)被终止,并且从当前的环境中弹出异常对象的引用.此时,异常处理机制接管程序,并开始寻找一个恰当的地方来继续执行程序.这个恰当的地方就是 “异常处理程序”(exception handler),他的任务是将程序从错误中恢复:以使程序能要么换一种方式运行,要么继续运行下去. * 关键字throw 将触发许多十分奇妙的事情。通常,你首先使用 new 来创建对象,用以表示错误情况,此对象的引用将传给throw。尽管返回的异常对象其类型通常与方法设计的返回类型不同,但从效果上看,它就像是从方法“返回”的。可以简单地把异常处理看成是一种能返回不同类型的机制,当然你过分强调这种类比的话,就会有麻烦了。你也能用抛出异常的方式从当前的作用域退出。一旦返回了一个值,就会退出方法或作用域。 * 抛出异常与方法正常返回值的相似之处到此为止。因为异常返回的“地点”与普通方法调用返回的“地点”完全不同。(。) 此外,通常,对于不同类型的错误,你要抛出相应的异常。错误信息可以保存在异常对象内部或者用异常类型的名称来暗示。上一层的环境通过这些信息得以决定如何处理你的异常 * 如果你在方法内部抛出了异常(或者在方法内部调用的其它方法抛出了异常),这个方法将在抛出异常的过程中结束。要是你不希望方法就此结束,你可以在方法内设置一个特殊的块来捕获异常。因为你在这个块里“尝试”调用了一些(可能产生异常的)方法,所以称为try 区块。它是跟在try 关键字之后的普通程序块: * 对于不支持异常处理的程序语言,要想仔细检查错误,你就得在每个方法调用的前后加上设置和错误检查的代码,甚至你每次调用同一方法时也得这么做。。这意味着代码将更容易被编写和阅读,因为完成任务的代码没有与错误检查的代码混在一起。 * Java 鼓励你把方法可能会抛出的异常类型,告知使用此方法的客户端程序员。这是种优雅的做法,它使得调用者能确切知道写什么样的代码可以捕获所有潜在的异常。当然,如果提供了源代码,客户端程序员可以在源代码中查找throw 语句来获知相关信息,然而程序库通常并不与源代码一起发布。为了预防这样的问题,Java 提供了相应的语法(并强制你使用这个语法),使你能以礼貌的方式告知客户端程序员某个方法可能会抛出的异常类型,然后客户
您可能关注的文档
最近下载
- 预习材料3-IFS集成财经服务变革.pdf VIP
- 北师大版高中数学必修一全册教学课件.ppt VIP
- 武汉市轨道交通1号线径河延伸线工程.pdf VIP
- ECMO学习心得体会重症医学科陈仁山.pptx VIP
- 2025年度“三会一课”及“主题党日”活动计划表+2025年党组理论学习中心组学习计划.doc VIP
- 最高法案例库-与公司有关的纠纷02-广东某乙公司诉某甲生物公司股权转让纠纷案.pdf
- 心力衰竭专家共识2025年.pptx
- 2023CSCO非小细胞肺癌诊疗指南.pdf VIP
- 2024-2025学年深圳市育才二中小升初入学分班考试语文试卷附答案解析.docx
- 2025年深圳市育才二中小升初入学分班考试数学模拟试卷附答案解析.pdf
文档评论(0)