Java异常处理与输入输出.ppt_第1页
Java异常处理与输入输出.ppt_第2页
Java异常处理与输入输出.ppt_第3页
Java异常处理与输入输出.ppt_第4页
Java异常处理与输入输出.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章Java异常处理、IO、李莉、1. Java异常处理2. Java输入输出、publicclasstemppublicstaticvoidmain (string args ) stringa=。 for (英寸=0; i5; I )系统. out .打印机(ai ); 1 .异常处理、异常(Exception ) :特殊的执行错误对象,对应Java语言固有的执行错误处理机制。 Java程序通常在网络环境中运行,必须考虑安全性。 Java引入了异常和异常类来处理程序中的执行错误。 与其他对象一样,异常是面向对象的一部分,是异常类的对象。 1 .异常处理,Java定义了许多异常类,每个异常

2、类都代表一个执行错误,其中包括有关该执行错误的信息和处理错误的方法。 如果在运行Java程序时发生运行错误,则程序将定义该运行错误,如果是可识别的错误,则会自动生成对应异常类的对象并生成异常。 一旦发生异常对象,系统必定有相应的机制,对其进行处理,以保证不会对恐慌、死区或其他操作系统造成损害,程序整体运行的安全性Java的异常处理机制,1 .异常处理异常类的结构和配置: Java的异常类是处理运行时错误的特殊类,每个异常类对应特定的运行时错误。 所有Java异常类都是Exception类的子类。1 .异常处理Throwable类、1 .异常处理、Throwable类: java.lang包中的

3、类Throwable类派生了两个子类: Exception和Error。 Error类由系统维护,Exception类提供给应用程序。 1 .异常处理Exception类、Exception类: Exception (字符串消息) :创建新的异常。 message通常是与该例外对应的错误的说明。 1 .异常处理Exception类,public String toString () :返回描述当前Exception类信息的字符串。 public void printStackTrace () :调用当前异常对象的堆栈利用率,即程序执行的对象或类的方法,并将执行过程中发生此异常的情况输出到标准输

4、出设备。 1 .例外处理系统定义的例外类。 Exception类有几个子类,每个子类都代表一个特定的运行时错误。 其中一些子类是预先由系统定义的,并且包含在Java类库中,这些子类被称为系统定义的异常类。 系统定义的动作异常通常对应于系统的动作错误。 定义并处理异常类,因为这些错误可能导致操作系统错误,甚至整个系统瘫痪。 1 .例外处理系统定义的例外类定义了与运行时错误对应的例外,因此即使Java程序发生了某些致命错误(例如,引用空对象等),系统也会自动生成对应的例外对象以处理该错误1 .对于用户定义的异常类异常处理,系统定义的异常主要用于处理系统可预见的比较常见的运行错误的某个应用程序特有的

5、执行错误,程序员可以根据程序的特殊情况对程序独有的异常类和异常对象用户定义的异常主要用于处理用户程序中的特定逻辑执行错误。 例外处理用户定义的例外类,例如,在队列队列中,队列方法dequeue ()、int dequeue() /排队操作,如果队列不为空,则从队列报头将一个数据int data; 国际货币基金组织isempty () ) data=m _ first node.get data (); m _ first节点=m _ first节点. get next (); 返回数据; else返回- 1; /调用此方法的方法必须单独处理队列中的“-1”、1 .异常处理用户定义的异常类、定义

6、异常类EmptyQueueException、“从空队列出队”逻辑错误: 无法专门处理classemptyqueueexceptionextends publicemptyqueueexception (queueq ) super (“队列为空。”. 来源队列=q; 公共字符串测试()/重装父类的方法。 详细错误消息return (“队列”sourceQueue.toString () )为空,执行出队操作时会引发异常。 1 .异常处理自定义用户定义的异常类、用户在异常处理程序中可能发生的逻辑错误,使系统及时识别、处理该错误,不影响扩散,使程序的容错性更好、更安全稳定。 创建用户定义的异常:

7、 (1)声明新的异常类,并将Exception类或其他系统异常类或用户异常类作为父类;(2)定义新异常类的属性和方法,或重新加载父类的属性和方法1 .如果异常处理抛出异常,并且在运行Java程序时发生可识别的错误,则会生成与该错误对应的异常类的对象。 这个过程称为慢异常。 1 .异常处理抛出异常;(1)系统定义的执行异常系统自动抛出所有系统定义的执行异常。 publicclasstemppublicstaticvoidmain (字符串阵列) inta=0,b=5。 System.out.println(b/a): /以零为除数,抛出系统定义的算术异常,1 .异常处理抛出异常,(2)抛出用户定

8、义的异常,用throw语句抛出,在什么情况下发生了这样的错误使用throw语句抛出异常对象的语法格式为:限定符返回类型方法名(残奥元列表) throws异常类名称列表throw异常类名称,1 .异常处理抛出异常,使用throw语句抛出异常: (1)通常是恒定的将throw语句放入if语句中,仅在满足if条件且出现用户定义的逻辑错误时执行。 (2)包含throw语句的方法应该向方法首部添加以下部分: throws异常类名列表通知所有调用方包含throw语句,准备接受并处理在执行过程中可能会抛出的异常。 如果方法中有多个throw语句,并且方法标头中也有多个异常类名列表,则必须包括可能发生的所有异

9、常。classemptyqueueexceptionextendsexception/用户定义的系统类的子类队列源队列; publicemptyqueueexception (queueq ) super (“队列为空。 ”“这是一个很好的例子。” ); 来源队列=q; 公共字符串测试()/重装父类的方法。 详细错误消息return (“队列”sourceQueue.toString () )为空,执行出队操作时会引发异常。 int dequeue () throwsemptyqueueexception/排队操作,如果队列不为空,则从队列标头开始int data; 国际货币基金组织isemp

10、ty () ) data=m _ first node.get data (); m _ first节点=m _ first节点. get next (); 返回数据; else throw (新闻出版物(this ) ); 用户定义的异常需要程序员在程序的适当位置创建自定义异常对象,并用throw语句抛出该异常对象。 1 .异常处理异常,(1)捕捉异常:异常抛出时,抛出的异常对象应该有被称为捕捉异常的特殊语句。 捕获异常类的对象时,用户程序会引起进程的跳转,系统会停止当前进程,跳转到特殊的异常处理语句块,或者直接从当前程序和Java虚拟机转移到操作系统。 1 .异常处理处理异常,在Java中

11、,异常对象被catch语句捕捉处理。 异常处理语句块的格式为catch (异常类名异常格式残奥仪表名称)异常处理语句组,1 .异常处理处理异常,每个catch语句块必须对应于try语句块。 try语句块用于监视其中的语句,并在发生异常时调用Java异常处理机制。 必须在try语句块中包括可能抛出异常的语句(包括throw语句和调用可能抛出异常的方法的方法调用语句)。公共集成电路(string args ) inta,b。 树b=0; a=3/b; catch (arithmeticexceptione )系统. out.println (exception : ); e .打印堆栈跟踪();

12、正确,Its Here! ); 1 .异常处理异常,(2)多异常处理:使用多异常处理机制,在一个try块中可能出现多个不同的异常,在多个catch语句块中可以捕获所有可能的异常,并且每个catch块可以接收特定的异常对象例如,publictnewinstance () throwsnstantiationexception、IllegalAccessException在不同的catch块中分别处理不同的异常对象, catch块要求不同的异常对象能够区别通过catch块,当try语句块抛出异常对象e时,程序流首先转移到第一个catch块, 检查当前异常对象是否可以在该catch块中接收到。如果在

13、第一个catch块中接收到e,则程序直接跳到该catch语句块,在语句块执行完成后,将在try块中未执行的语句和其他catch 直接执行后续语句如果e与第一个catch块不匹配,系统将自动移动到第二个catch块并匹配,如果第二个不匹配,系统将移动到第三个,直到找到可以接收e的catch块,从而完成进程跳转。 try语句块catch (exception1e1) catch (exception2e2) catch (exception3e3)、异常对象e是否能够通过1个catch语句块接收、其异常对象e和catch or (3)异常对象实现了用残奥仪表定义的接口。 接收异常对象。 中的组合图

14、层性质变更选项。 如果所有catch块都与当前异常对象e不匹配,则当前方法无法处理该异常对象e,程序流将返回到调用该方法的高级方法。 如果此高级方法定义了与异常对象e匹配的catch块,则进程将跳到此catch块,否则它将追溯到更高级的方法。 如果在所有方法中都找不到适当的catch块,系统将处理此异常对象。 通常中止程序的执行,退出虚拟机,进入操作系统,在标准输出上打印相关的异常信息。 另外,如果try语句块catch (exception1e1) catch (exception2e2) catch (exception3e3)在try块内的所有语句的执行中没有异常,则在所有的catch块

15、try语句块catch (exception1e1) catch (exception2e2) catch (exception3e3)在catch块中处理不同的异常时: (1)catch (2)异常对象和catch块越是具体的例外,catch块必须位于前面,与多个例外匹配的catch块必须位于后面。级测试阵列私有inti; 隐私交织=1、2、3、4、5; voidmlwhilei=(英寸() * 10 )-5 System.out.println (以随机数为分母的除法结果为100/i ); System.out.println (阵列阵列I的值为阵列I ); publicclasstemp

16、publicstaticvoidmain (字符串阵列) testar raya=新测试阵列(); 特里a.ml (); catch (arrayindexoutofboundsexceptione1) system.out.println (数组下标过境) catch (arithmeticexceptione2) system.out.println (运算错误) e2.打印堆栈跟踪(); System.out.println (程序结束。 ); 1. Java异常处理2. Java输入输出、2. Java输入输出,任何计算机程序都需要从键盘读取数据、保存或读取文件、通过网络连接读取数据等输入输出处理。 Java输入/输出处理封装在java.io包中,并且包含用于根据情况完成流输入/输出的类。I/o类使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论