Java第7章Java的异常处理课件.pptx

上传人(卖家):三亚风情 文档编号:3515171 上传时间:2022-09-10 格式:PPTX 页数:71 大小:291.99KB
下载 相关 举报
Java第7章Java的异常处理课件.pptx_第1页
第1页 / 共71页
Java第7章Java的异常处理课件.pptx_第2页
第2页 / 共71页
Java第7章Java的异常处理课件.pptx_第3页
第3页 / 共71页
Java第7章Java的异常处理课件.pptx_第4页
第4页 / 共71页
Java第7章Java的异常处理课件.pptx_第5页
第5页 / 共71页
点击查看更多>>
资源描述

1、第第7章章 Java的异常处理的异常处理l掌握异常的基本概念,了解掌握异常的基本概念,了解Java异常异常层次结构层次结构l掌握异常的处理机制和处理方法掌握异常的处理机制和处理方法l掌握异常的抛出机制掌握异常的抛出机制l了解自定义异常的方法了解自定义异常的方法学学习目标习目标:n7.1 Java的异常简的异常简介介 n7.2 异常机异常机制制n7.3 自定义异常自定义异常类类n7.4 实实训训n7.5 习题习题第第7章章 Java的异常处理的异常处理7.1.1.Java异异常常7.1.2.常用常用Java异常类列表异常类列表7.1 Java的异常简介的异常简介错误检测和处理是应用程序开发的重要

2、组成部分。Java程序执行时,不可避免会出现各种各样的错误,为了能够及时、有效地处理程序中的运行错误,Java引入了异常和异常类,并提供了丰富的处理出错与异常的措施。异常处理是Java语言的一大特色,它能够加强程序的健壮性,即使遇到异常情况,也不会造成程序崩溃。7.1 Java的异常简介的异常简介Java把程序不能正常执行的情况分为两类:错误(Error)和异常(Exception)。错误通常是指程序本身存在的非法情形,或是代码存在的逻辑问题引起的,编程人员可通过对程序更仔细的检查来减少错误。理论上讲,错误是可以避免的。而“异常”实际上是“异常事件”的简称,它指的是程序执行过程中出现的非正常情

3、况,通常是不可预测的,比如数组下标越界、所需文件找不到、除0溢出等。由于错误(Error)的排除更多依赖编程人员的编程熟练程序,异常则难以预见又必须在程序中处理,所以Java更侧重于异常处理。归纳起来,Java产生异常的原因主要有3种:第一种是Java内部错误发生时虚拟机产生的异常;第二种是程序代码中的错误产生的异常,例如空指针异常、数组越界异常等,这种异常称为“未检查的异常”;第三种是通过throw语句手动生成的异常,这种异常称为“检查的异常”,一般用来告知方法的调用者一些必要的信息。7.1.1 Java异常异常Java采用面向对象的方法来处理异常,每个异常都是一个对象。当程序运行发生异常时

4、,正在运行的方法或Java虚拟机就会产生相应的异常对象,并把它传递给运行系统,运行系统就会从产生异常的方法开始进行回溯查找,直到找到对此异常进行处理的代码来处理这一异常。如果回溯到main方法时此异常仍未被处理,或者main方法中也未对它进行处理,则程序终止运行。我们把生成异常对象并提交给运行系统的过程称为抛出(throw)一个异常。运行系统在方法的轨迹栈中回溯查找,直到找到能够处理该类型异常的方法,这一过程称为捕获(catch)一个异常。Java中定义了很多异常类。每个异常类都对应了一种特定的运行错误,异常类中包含了该运行错误的信息和处理错误的方法等内容。异常对象即类的实例。所有的异常类都直

5、接或间接地继承于类Throwable,Throwable的分类层次和继承结构 7.1.2常用常用Java异常类列表异常类列表如图7-1所示从图中可以看出,Throwable类派生了两个子类:Error和Exception。其中,Error类表示的是一些致命的异常即错误,它由系统保留,程序不能抛出这种类型的对象,Error类的对象不可捕获、不可恢复,出错时系统会通知用户并终止程序;而Exception类是所有异常类的父类,其子类对应了一些比较常见的、用户程序能够捕捉到的异常情况,可捕获、可恢复。图7-1 Exception类的层次结构Exception类的异常子类如果按照处理方式来划分,可以分为

6、:运行时异常和非运行时异常两大类。1.运行时异常运行时异常运行时异常表示的是Java程序运行时发现的由Java虚拟机抛出的各种异常,这些异常通常对应着系统运行错误,如除数为0异常、下标越界异常。这类异常的产生非常普遍,用户无须全部处理。继承于RuntimeException类的异常都属于运行时异常。表表7-1 常见的运行时异常类常见的运行时异常类异异 常常 类类 异异 常常 类类 的的 说说 明明 ArithmeticException 除数为0的异常 IndexOutOfBoundsException 下标越界异常 ArrayIndexOutOfBoundsException 访问数组元素下

7、标越界异常 ArrayStoreException 把一个错误类型的对象存入一个数组中的异常 ClassCastException 类强制转换异常 IllegalArgumentException 传递了一个错误参数给某个方法的异常 IllegalThreadStateException线程所处状态的异常 NullPointerException 使用空指针(空对象)异常 NoSuchMethodException没有某个特定方法的异常 StringIndexOutOfBoundsException 字符串下标越界异常2.非运行时异常非运行时异常非运行时异常是由Java编译器在编译时检测到的在

8、方法执行过程中可能会发生的异常。此类异常必须明确地加以处理,否则程序就无法通过编译。RuntimeException类及其子类之外的异常类都是非运行时异常。表7-2列出的是几种常见的非运行时异常类。异异 常常 类类 异异 常常 类类 的的 说说 明明 classNotFoundException 指定类或接口不存在的异常 IllegalAccessException 非法访问异常 IOException 输入/输出异常 ProtocolException 网络协议异常 SocketException Socket操作异常表表7-2 常见的非运行时异常类常见的非运行时异常类【例【例7-1】运行过

9、程中产生系统定义的异常及异常信息的显】运行过程中产生系统定义的异常及异常信息的显示示代码:程序ExceptionDemo.javapublic class ExceptionDemo static void methodA(String s)Integer i=new Integer(s);System.out.println(i);public static void main(String args)String s=123.45;methodA(s);运行结果为:运行结果为:Exception in thread main java.lang.NumberFormatException:

10、For input string:123.45“at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)at java.lang.Integer.parseInt(Integer.java:492)at java.lang.Integer.(Integer.java:677)at ExceptionDemo.methodA(ExceptionDemo.java:5)at ExceptionDemo.main(ExceptionDemo.java:12)该程序的运行结果说明,程序运行时产生一个

11、NumberFormatException数值格式异常。在用Integer的构造方法将一个字符串转换为Integer数据时,因为参数字符串格式不对,所以产生了这个运行时异常。输出的第一行信息是toString()方法输出的结果,它对这个异常对象进行简单的说明。其余各行显示的信息表示了异常产生过程中调用的方法,最后是在调用Integer.parseInt()方法时产生的异常,调用该方法的出发点在main()方法中。Java异常机制是指Java提供的用于处理程序中错误的一种机制。当Java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应时,系统都会产生一个该异常类的对象。一

12、旦一个异常对象产生,系统中就会有相应的机制来处理它,从而保证整个程序运行的安全性。在Java应用程序中,异常处理机制为:抛出异常,捕获异常。实现异常处理机制是通过5个关键字:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throw)一个异常,这时可以通过它的类型来捕获(catch)它,或最后(finally)由默认处理器来处理。7.2异常机制异常机制7.2.1 捕捕获异获异常常7.2.2 抛出异抛出异常常7.2.3 声声明异明异常常7.2.4 案案例:除数为例:除数为0的异常及处理的异常及处理7.2 异异常机制常机制

13、程序运行过程中,当一个异常被抛出时,识别这个被抛出的异常对象并查找处理它的方法的过程称为异常捕获。异常的捕获和处理是同时定义的,两个操作密不可分。1.try-catch语句语句在Java程序中,异常捕获和处理是用try-catch语句来实现的。一般定义格式如下:7.2.1捕获异常捕获异常try /可能抛出异常的代码块catch(异常类型 对象名)/异常处理代码通常把可能产生异常情况的语句放在try语句块中,这个try语句块用来启动Java的异常处理机制。catch语句则负责对产生的异常对象进行识别,一旦该异常对象与catch子句中的异常类型相匹配时,就执行catch之后的代码来处理异常。Jav

14、a语言还规定,每个catch语句块都应该与一个try语句块相对应。【例7-2】异常捕获与处理解题思路:程序的try块中包含了可能抛出ArithmeticException异常的语句,catch块则专门用来捕获这类异常。代码:程序ExceptionDemo2.javapublic class ExceptionDemo2 static void subroutine()int d=0;tryint a=10/d;System.out.println(本行将不会显示.);catch(ArithmeticException e)System.out.println(除数为0的异常被捕获,程序继续进行

15、.);public static void main(String args)ExceptionDemo2.subroutine();System.out.println(程序正常结束.);运行结果为:除数为0的异常被捕获,程序继续进行.程序正常结束.当try语句块中的某条语句在执行时产生了一个异常,此时被启动的异常处理机制会自动捕获到它,然后流程自动跳过异常引发点后面的所有尚未执行语句,本程序中的语句:System.out.println(本行将不会显示.);就没有执行,而产生的异常对象正好属于ArithmeticException类型,所以转去执行catch块中的语句。从执行结果还可以看出

16、,异常被捕获并执行完catch块中的语句后,继续执行catch块之后的语句。在try/catch语句中,如果没有异常发生或异常产生后没有捕获到,则跳过catch块。2.多个多个catch语语句句由于一个try语句块可能会抛出一个或多个异常,所以一个try可以有多个catch语句,每个catch块用来识别和处理一种特定类型的异常对象,它们必须紧跟在try语句块之后,catch语句块之间也不能有任何其他代码。try /可能抛出异常的代码块可能抛出异常的代码块catch(异常类型(异常类型1 对象名对象名1)/异常处理代码异常处理代码catch(异常类型(异常类型2 对象名对象名2)/异常处理代码异

17、常处理代码 catch(异常类型(异常类型n 对象名对象名n)/异常处理代码异常处理代码 如果try块产生的异常对象被第一个catch块所接收,则程序的流程将直接跳转到这个catch语句块中,处理完毕后就退出整个try/catch结构,其他catch语句块将被忽略。如果try块产生的异常对象与第一个catch块不匹配,则自动转到第二个catch块进行比对,如果仍不匹配,则转到第三个直到找到一个可以接收该异常对象的catch块。如果所有的方法中都找不到合适的catch块匹配,则由Java运行系统来处理这个异常对象。【例7-3】带有多个catch子句的try语句代码:程序MultiCatch.ja

18、vapublic class MultiCatch public static void main(String args)tryint a=args.length;System.out.println(a=+a);int b=24/a;int c=1;c4=66;String str=null;str.length();catch(ArithmeticException e)System.out.println(除数为0的异常:+e.toString();catch(ArrayIndexOutOfBoundsException e)System.out.println(数组下标超界异常:+e

19、.toString();catch(NullPointerException e)System.out.println(空指针异常:+e.toString();System.out.println(在try/catch语句后执行的一个语句.);运行结果为运行结果为:a=0除数为0的异:java.lang.ArithmeticException:/by zero在try/catch语句后执行的一个语句.运行该实例时,a=0则 除数为0,出现算术异常,此时终止执行try语句块中的语句,转而执行捕获到该异常的catch语句块,执行完catch语句块之后就退出整个try/catch块,执行try/ca

20、tch块之后的语句。try块中尚未执行的语句和其他未捕获到异常的catch块将被忽略。由于异常对象与catch块的匹配是按照catch块的先后排列顺序进行的,所以要处理多异常时应注意认真设计各catch块的排列顺序。一般地,处理较具体和较特殊的异常的catch块应放在前面,而可与多种异常相匹配的catch块应放在较后的位置,即从特殊到一般。3.try/catch语句嵌套语句嵌套try语句可以嵌套声明,即一个try语句可以在另一个try语句块内部。每次进入try语句时,异常的前后关系都会被推入堆栈。如果一个内部的try语句没有提供特定异常的catch处理程序,堆栈将弹出下一个try语句的catc

21、h处理程序检查是否与之匹配。这个过程将持续直到一个catch语句匹配成功,或者直到所有的嵌套try语句被检查耗尽。如果始终没有catch语句匹配,Java的运行系统将处理这个异常。【例7-4】try语句的嵌套代码:程序NestTry.javapublic class NestTry public static void main(String args)boolean tag=false;tryint a=args.length;int b=24/a;trytag=true;if(a=1)a=a/(a-a);if(a=2)int c=1;c4=66;Catch(ArrayIndexOutOfB

22、oundsException e)System.out.println(数组下标越界异常:+e.toString();catch(ArithmeticException e)if(tag)System.out.println(内层try语句抛出的异常);System.out.println(除数为0异常:+e.toString();当没有命令行参数时即a=0时,语句:int b=24/a;抛出除数为0异常,则跳出外层try语句块,由catch语句捕获异常并处理。运行结果为:当命令行参数的个数为1即a=1时,语句:a=a/(a-a);抛出除数为0异常,则跳出内层try语句块,然后catch语句输

23、出“除数为0异常”。运行结果为:当命令行参数的个数为2即a=2时,语句:c4=66;抛出数组下标越界异常,则跳出try语句块,catch语句输出“数组下标越界异常”。运行结果为:除数为0异常:java.lang.ArithmeticException:/by zero内层try语句抛出的异常除数为0异常:java.lang.ArithmeticException:/by zero数组下标越界异常:java.lang.ArrayIndexOutOfBoundsException:44.try-catch-finally语句语句还有一种异常捕获与处理语句是try-catch-finally语句,其

24、中的finally子句用来完成try-catch语句一些必要的善后工作,通常是清除内部工作状态或释放其他相关系统资源等。finally子句必须与try或try-catch语句块配合使用,且finally紧接着try-catch语句的最后一个catch语句块。其基本格式如下:try /可能抛出异常的代码块catch(异常类型 对象名)/异常处理代码finally /finally处理代码finally语句是一种强制的、无条件执行的语句,即无论在程序中是否出现异常,无论出现哪一种异常,也不管try代码块中是否包含有break、continue、return或者throw语句,finally子句都会

25、被执行。try-catch-finally语句块的执行情况可以细分为以下3种:1)如果try语句块没有抛出异常,则执行完try代码之后直接执行finally语句块。2)如果try语句块中抛出异常并被catch子句捕获,那么在抛出异常的地方终止try代码块的执行,转而执行相匹配的catch语句块,之后执行finally语句块。3)如果try语句块中抛出的异常没有被任何catch子句捕获,那么将直接执行finally语句块,并把该异常传递给该方法的调用者。【例7-5】带有finally子句的try语句解题思路:无论try语句是否抛出异常,finally语句都会被执行代码:程序FinallyDemo

26、1.javapublic class FinallyDemo1 public static void main(String args)for(;)trySystem.out.println(break即将中断循环!);break;finallySystem.out.println(finally语句块总要被执行!);运行结果为:运行结果为:break即将中断循环!finally语句块总要被执行!【例7-6】带有finally子句的try/catch语句解题思路:即使异常被捕获,catch语句被执行,最后也要执行finally语句代码:程序FinallyDemo2.javapublic cla

27、ss FinallyDemo2 public static void main(String args)try int x=0;int y=20;int z=y/x;System.out.println(y/x的值是:+z);catch(ArithmeticException e)System.out.println(捕获到算术异常:+e.toString();finally System.out.println(执行到finally语句块.);运行结果为:运行结果为:捕获到算术异常:java.lang.ArithmeticException:/by zero执行到finally语句块.前面我

28、们介绍了使用try-catch语句捕获Java运行时系统出现的异常,并在catch块中进行处理。除此之外,还可以在程序中主动抛出异常和声明异常。在一个方法的运行过程中如果发生了异常,该方法则生成一个该异常类的对象,并把它提交给运行系统。这个过程称为抛出一个异常。通常程序出现运行错误,系统会自动抛出异常,但也允许程序通过语句主动地抛出异常,这些异常对象必须是Throwable类或其子类的实例。Java程序使用throw语句自行抛出异常。throw语句抛出的不是异常类,而是一个异常对象,而且每次只能抛出一个异常对象。该语句的一般语法格式如下:7.2.2 抛抛出异常出异常throw 异常对象名thr

29、ow语句执行时,程序会立即终止它后面的语句,直接寻找与之匹配的catch子句,执行相应的异常处理程序,throw后面的所有语句都将被忽略。【例7-7】使用throw语句抛出异常解题思路:因为异常是一种对象,所以在抛出它之前,必须使用关键字new来创建它。本例中创建了一个带有指定异常信息的空指针异常对象,并由catch语句捕获到该异常代码:程序ThrowDemo.javapublic class ThrowDemo public static void main(String args)try throw new NullPointerException(抛出异常示例);catch(NullPo

30、interException e)System.out.println(捕获到异常:+e.getMessage();运行结果为运行结果为:从例子中可以看出,使用throw抛出异常首先应指定或定义一个合适的异类,并产生这个类的一个对象,然后抛出这个异常对象。当catch语句捕获到异常之后,可以利用throw重新抛出此异常,以便让他catch处理程序处理该异常。这一现象称为异常重掷。注意,当你重新出异常时,它不会被同一个catch语句再次捕获,它将被传送到下一catch语句。捕获到异常:抛出异常示例【例7-8】异常重掷代码:程序ThrowDemo2.javapublic class ThrowDe

31、mo2 static void A()try throw new NullPointerException(抛出异常示例);catch(NullPointerException e)System.out.println(方法A()中捕获到异常:+e.getMessage();throw e;/异常重掷 public static void main(String args)try A();catch(NullPointerException e)System.out.println(方法main()中捕获到异常:+e.getMessage();运行结果为:运行结果为:方法A()中捕获到异常:抛

32、出异常示例方法main()中捕获到异常:抛出异常示例在声明一个方法时,可以将该方法可能产生或出现的、但它自身没有进行处理的各种异常通过throws关键字进行声明。其用意是希望该方法的调用者处理throws子句中所声明的各种异常。这种异常可以从方法调用栈中一直向后传播,直到有合适的方法对其进行捕获为止。含有throws子句的方法声明的基本形式如下:一个throws子句列举了一个方法可能抛出的所有异常类型,它们之间用逗号分隔。这些异常类型可以扩展自任何异常类型。在实际应用中,对Error或RuntimeException 及其子类异常,通常都不需要在异常列表中指定,而其他类型的异常必须进行指定,否

33、则会产生编译时错误。7.2.3 声声明异常明异常返回类型 方法名(参数列表)throws 异常类型列表 /方法体【例7-9】使用throws声明异常代码:程序ThrowsDemo.javapublic class ThrowsDemo private String sArray=null,1,2;public static void main(String args)try new ThrowsDemo().test(args.length);catch(NullPointerException e)System.out.println(空指针异常:+e.toString();public v

34、oid test(int index)throws NullPointerException System.out.println(第+index+个元素的长 度:+sArrayindex.length();运行结果如下:在在本例中,定义本例中,定义test方法时使用方法时使用throws声明了空指针异常。在声明了空指针异常。在main()法法的的try语句块中,通过语句块中,通过new ThrowsDemo()创建对象并调用创建对象并调用test方法,方法,传递的参数为传递的参数为args.length即为即为0,在输出下标为,在输出下标为0的元素长度时产生空的元素长度时产生空指针异常。指针

35、异常。空指针异常:java.lang.NullPointerException解题思路:定义静态方法getArith时使用关键字throws声明了算术异常,如果除数为0,则抛出这个异常。main()方法try语句块中要输出getArith(1,0)的值,引发异常并抛出,catch语句捕获后显示异常信息。代码:DivideExample.javapublic class DivideExample public static double getArith(double a,double b)throws ArithmeticException ArithmeticException ex=ne

36、w ArithmeticException(除数不能为0);if(b=0)throw ex;return a/b;7.2.4 案案例:除数为例:除数为0的异常及处理的异常及处理public static void main(String args)trySystem.out.println(getArith(1,0);catch(ArithmeticException e)e.printStackTrace();运行结果:java.lang.ArithmeticException:除数不能为除数不能为0at DivideExample.getArith(DivideExample.java:5

37、)at DivideExample.main(DivideExample.java:16)尽管Java预定义了可以处理的大多数常见错误的异常类,但在实际应用中,如果预计在某类操作中可能产生一个问题,该问题不适合用任何标准的异常情况来描述,此时就需要编程人员创建自己的异常类来处理,即自定义异常类。自定义异常类使程序中产生的某些特殊逻辑错误能够及时被系统识别并处理,从而使程序有更好的容错性,整个系统也更加安全稳定。自定义异常类可以继承于Throwable、Exception类及其子类,但通常是从Exception类派生而来。声明自定义异常类的格式如下:7.3 自自定义异常类定义异常类class 类

38、名 extends 异常父类名 /类中定义编写继承于Exception类的自定义异常类比较简单,一般是重载其构造方法:一个是无参数的构造方法,另一个是带一个字符串的构造方法,这个字符串将作为该异常对象的详细说明。使用自定义异常类和使用标准异常类的方式类似,同样使用throw或throws语句抛出异常。【例7-10】自定义异常类UserException的使用解题思路:自定义异常类UserException继承了IOException异常类,并在类中定义了成员变量i,构造方法和一般方法toString()代码:程序UserExceptionDemo.javaimport java.io.IOEx

39、ception;class UserException extends IOException private int i;public UserException(int j)i=j;public String toString()return UserException:+i;public class UserExceptionDemo static void throwsOne(int j)throws UserException if(j10)throw new UserException(j);public static void main(String args)trythrows

40、One(15);catch(UserException e)System.out.println(方法main捕获异常:+e);运行结果为运行结果为:本例中自定义了异常类后,在UserExceptionDemo类中,方法throwsOne在参数大于10时抛出UserException异常,main方法捕获此异常并进行处理。方法main捕获异常:UserException:157.4.1 实实训训1:数字转换异:数字转换异常常【任务目的】掌握Java异常机制,掌握程序中异常的抛出和捕获【任务要求】编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。当输入的数据不是do

41、uble型数据(如字符串“abc”)抛出异常并处理。【解题思路】当试图把一个不合法的字符串转换成数值类型时产生NumberFormatException异常,通过catch语句捕获并处理。7.4 实训实训代码:程序NumberFormat.javaimport java.util.Scanner;public class NumberFormat public static void main(String args)Scanner s=new Scanner(System.in);boolean flag=true;System.out.println(请输入圆的半径:);do String

42、 br=s.nextLine();try System.out.println(“圆的面积是:+Area(Double.parseDouble(br);break;catch(NumberFormatException e)System.out.println(“你输入的不是数值,请重新输入);while(flag);s.close();public static double Area(double r)return Math.PI*r*r;运行结果为运行结果为:请输入圆的半径:abc你输入的不是数值,请重新输入2.5圆的面积是:19.6349540849362087.4.2 实训实训2:自

43、定义方程求根的异:自定义方程求根的异常常【任务目的】掌握自定义异常【任务要求】自定义一个异常类Equation_Exception,再定义一个主类,包含main()方法和result()方法,在main()方法中调用result()方法。result()方法中通过三个参数得到一元二次方程的三个系数a,b,c,如果判别式d0或d=0,方程有根,计算出根并输出(不要做返回值),在main()方法中要求测试异常,并捕捉异常。【解题思路】首先自定义异常类,并在result()方法中声明异常,当判别式d0时抛出这个异常。代码:程序EquationResult.javaclass Equation_Exc

44、eption extends Exception /自定义异常类 public Equation_Exception()super();public class EquationResult /主类 public static void main(String args)trySystem.out.println(设方程系数:a=1,b=1,c=-6);result(1,1,-6);System.out.println(设方程系数:a=4,b=5,c=11);result(4,5,11);catch(Equation_Exception e)System.out.println(方程没有根.)

45、;a,double b,double c)throws Equation_Exception double d;double x1,x2;d=b*b-4*a*c;if(d0)throw new Equation_Exception();else if(d=0)x1=x2=-b/(2*a);System.out.println(方程的根:x1=x2=+x1);elsex1=(-b+Math.sqrt(d)/2*a;x2=(-b-Math.sqrt(d)/2*a;System.out.println(方程的根:x1=+x1+,x2=+x2);运行结果为运行结果为:设方程系数:a=1,b=1,c=-

46、6 方程的根:x1=2.0,x2=-3.0 设方程系数:a=4,b=5,c=11 方程没有根.一、问答题1什么是异常?解释抛出、捕获的含义。2简述Java的异常处理机制。3解释catch子句的执行顺序。4下面的代码有什么错误?class MyClass /throw new MyClass();5试述throw语句和throws关键字之间的差别。6位于异常层次结构顶端的是什么类?7.5习题习题二、实践题1创建这样一个程序,它试图引用一个指向空值的变量,并尝试用一个不正确的下标去访问一个数组,如用一个负的下标值在一个字符串中得到一个字符。执行这个程序并描述所看到的错误信息。2创建一个double StringToDouble(String number)方法,试图把输入的字符串作为double型的数值,在可能出现问题时抛出一个异常。采用适当的捕获机制来捕获异常。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Java第7章Java的异常处理课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|