- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 Java高级编程 教学目标 8.1 错误、异常及其处理 在进行程序设计时,错误的产生是不可避免的,同时也是必须要处理的问题。Java 用面向对象的方法通过异常(Exception)来处理错误。 一、编程中的错误 一般来说,程序的错误分为编译错误和运行错误两种。 1、编译错误 编译错误是由于所编写的程序代码存在语法问题,未能通过由源代码到目标代码的编译过程而产生的,它是由语言的编译系统来负责检测和报告的。 2、运行错误 二、异常和异常类 1、异常的基本概念 异常(Exception)是特殊的运行错误,是在程序运行过程中发生的、会打断程序正常执行的错误。 如:除0溢出、文件找不到、数组元素下标越界等。 在设计程序时,必须考虑到可能发生的异常事件并做出相应的处理。 Java 是这样规定的:当语义限制被违反时,将会抛出异常,并将引起程序流程从异常发生点转移到程序员指定的位置。 异常一般是从发生的地方抛出,在流程控制转移到的地方被捕获。 如果一个方法本身能抛出异常,当所调用的方法出现异常时,调用者可以捕捉异常使之得到处理;也可以回避异常,这时异常将在调用的堆栈中向下传递,直到被处理。 Java 的异常类是处理运行时错误的特殊类,每一种异常类对应一种特定的运行错误,每一个异常事件由一个异常类的对象来代表。 所有的 Java 异常类都是系统类库中的Exception 类的子类。其类的继承结构如 图 8-1 所示。 Exception 类对象是 java 程序抛出或处理的对象,它的各种不同的子类分别对应不同类型的异常。 Exception 类从父类 Throwable 继承,同时也继承了若干方法,常用的有: Exception 类有若干子类,每一种子类对应一种特定的运行错误,类中包含了对应于这种运行错误的信息和处理错误的方法等内容。 这些子类有些是系统事先定义好并包含在 Java 类库中的,称为系统定义的运行异常。见 P289 表 8-1。 系统定义的运行异常主要用来处理应用程序中一些常见的运行错误,这些错误是系统可以预见的。 若该应用程序有其特殊的逻辑要求,则可能出现系统识别不了的运行错误,这时需要用户创建自定义异常和异常类,使系统能够识别这种错误并进行处理。 创建用户自定义异常时,一般需要完成的主要工作有: 8.1.2 抛出异常 抛出异常是指Java程序在运行时如果引发了一个可识别的错误,就会产生一个与该错误相对应的异常类对象。 2、语句抛出的异常:用户程序定义的异常系统不能自动抛出,借助于throw语句来把用户程序定义的异常在适当的情况下抛出。 throw语句的语法格式为: 修饰符 返回类型 方法名 ( 参数列表 ) throws 异常类名列表 { …… throw 异常类对象; …… } 8.1.3异常的处理 异常的处理主要包括捕捉异常、程序流程的跳转和异常处理语句块的定义。 1. 捕捉异常 当一个异常被抛出时,应该有专门的语句来接收这个被抛出的异常对象,这个过程被称为捕捉异常。当一个异常类的对象被捕捉或接收后,用户程序就会发生流程的跳转,系统中止当前的流程而跳转至专门的异常处理语句块,或直接跳出当前程序和Java虚拟机回到操作系统。 异常处理语句块又称为catch语句块,其格式如下: catch ( 异常类名 异常形式参数名) { 异常处理语句组; } 每个catch语句块都应该与一个try语句块相对应,这个try语句块用来启动Java的异常处理机制;throw语句、调用可能抛出异常方法的方法调用语句,都应该包含在这个try语句块中。 例 8-2 8.2 Java 的多线程 P256 程序 进程 线程(thread)为程序进程(process)里单一而连续的控制流程,就像线一样有头有尾,故称为线程。 (一)什么是多线程 从字面上解释,所谓多线程是指“多个”线程的集合,而线程可以被比喻成程序运行的一小部分,在概念上多个线程是同时在运行的(以极短时间片断的角度来观察)。 看下面例子,集中注意力阅读下面的文字: “让我问你一个问题:请问你今年多大了?生日是哪一天?” (二)线程的生命周期 线程的生命周期如下图所示: 1、建立新线程状态 建立新线程状态是由于 new Thread() 的建立,它建立一个线程对象,但系统资源尚未配置,这时可使用 start() 方法来启动,或使用 stop() 方法来终止它。 3、可执行状态 当就绪状态的线程被调度并获得处理器资源时,便自动进入运行状态。这时自动调用另一个 run() 方法开始执行。run() 方法定义了这一类线程的操作和功能。 因
您可能关注的文档
最近下载
- 括号里最大能填几_专项练习.doc VIP
- 2024年度公需科目视频答题题库.docx VIP
- 2025年学校基孔肯雅热防控应急预案(精选).docx VIP
- 2024—2025学年安徽省六教育研究会高一上学期新生入学素质测试英语试卷.doc VIP
- 111法不可违(教学设计)-七年级道德与法治下册高效课件+教学设计(统编版2024).docx VIP
- HG∕T 5421-2018 噻唑膦原药(可复制版).pdf
- 初中英语新外研版七年级下册全册重点短语(2025春).doc VIP
- 《大学》原文和译文.pdf VIP
- 语学校高新中学小升初入学分班考试数学模拟试卷附答案解析 .pdf VIP
- 防雷改造工程施工方案(3篇).docx VIP
文档评论(0)