版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第6章章 JAVA异常处理异常处理Java程序设计程序设计 第第6章章 JAVA异常处理异常处理第第6章章 JAVA异常处理异常处理6.1 异常的概念异常的概念6.2 异常处理异常处理6.3 自定义异常自定义异常Java程序设计程序设计 第第6章章 JAVA异常处理异常处理生活中的异常生活中的异常正常情况下,小王每日开车去上班,耗时大约正常情况下,小王每日开车去上班,耗时大约30分钟分钟但是,异常情况迟早要发生!但是,异常情况迟早要发生!一路畅通一路畅通堵车!堵车!撞车!撞车!Java程序设计程序设计 第第6章章 JAVA异常处理异常处理什么是异常什么是异常异常就是在程序的运行过程中所发生的
2、不正常的事件,它会异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序中断正在运行的程序绕行或者等待绕行或者等待请求交警解决请求交警解决异常!异常!面对异常该怎么办呢?通常情况下,我们会这样处理:面对异常该怎么办呢?通常情况下,我们会这样处理:程序运行程序运行程序中断运行程序中断运行堵车!堵车!撞车!撞车!生活中,我们会根据不同的异常进行相应的处理,生活中,我们会根据不同的异常进行相应的处理,而不会就此中断我们的生活而不会就此中断我们的生活Java程序设计程序设计 第第6章章 JAVA异常处理异常处理6.1 异常的概念异常的概念1.1.什么是异常?什么是异常? 异常是在程序运
3、行过程中所发生的破坏了正常异常是在程序运行过程中所发生的破坏了正常的指令流程的事件。软件和硬件错误都可能导致的指令流程的事件。软件和硬件错误都可能导致异常的产生。异常的产生。 程序运行出现异常时,程序运行出现异常时,JavaJava运行环境就用异常运行环境就用异常类类ExceptionException的相应子类创建一个异常对象,并等的相应子类创建一个异常对象,并等待处理待处理Java程序设计程序设计 第第6章章 JAVA异常处理异常处理程序中的异常程序中的异常public class ExcepNoCatch public static void main(String args) int
4、i = 0;String greetings = Hello world!, No, I mean it!, HELLO WORLD! ; while (i 4) System. out. println (greetings i); i+; Java程序设计程序设计 第第6章章 JAVA异常处理异常处理什么是异常处理什么是异常处理Java编程语言使用异常处理机制为程序提供了错误编程语言使用异常处理机制为程序提供了错误处理的能力处理的能力程序中预先想好了程序中预先想好了 对付异常的处理办法对付异常的处理办法 异常!异常! 程序运行程序运行处理完毕,程序继续运行处理完毕,程序继续运行对异常进行处
5、理对异常进行处理Java程序设计程序设计 第第6章章 JAVA异常处理异常处理2Java处理异常的机制处理异常的机制异常处理可分为以下几个步骤异常处理可分为以下几个步骤: :1 1)抛出异常抛出异常:当方法中有一个错误发生后,该方法:当方法中有一个错误发生后,该方法创建一个异常对象并把它交给运行时系统。创建一个异常对象并把它交给运行时系统。2 2)捕获异常:捕获异常: 运行时系统在方法调用堆栈里为被运行时系统在方法调用堆栈里为被抛出的异常查找处理代码。抛出的异常查找处理代码。3 3)异常处理:异常处理:通过方法调用来处理异常通过方法调用来处理异常4 4)异常终止:异常终止:如果运行时系统在方法
6、调用栈查遍了如果运行时系统在方法调用栈查遍了所有的方法而未找到合适的异常处理程序,则运所有的方法而未找到合适的异常处理程序,则运行是系统终止执行。行是系统终止执行。Java程序设计程序设计 第第6章章 JAVA异常处理异常处理2Java处理异常的机制处理异常的机制异常发生异常发生抛出抛出异常异常JAVA虚虚拟机拟机强强制制抛抛出出生生动动自自成成异常类异常类对象对象异常处理异常处理代码代码捕获捕获异常异常捕捕获获异异常常异常类异常类对象对象终 止终 止程序程序Java程序设计程序设计 第第6章章 JAVA异常处理异常处理2Java处理异常的机制处理异常的机制可以灵活的处理异常,如果当前方法有能
7、力处理异可以灵活的处理异常,如果当前方法有能力处理异常,就捕获并处理它,否则只需抛出异常,由方法常,就捕获并处理它,否则只需抛出异常,由方法调用者来处理它。调用者来处理它。异常流程的代码和正常流程的代码分离,提高了程异常流程的代码和正常流程的代码分离,提高了程序的可读性,简化了程序的结构。序的可读性,简化了程序的结构。Java处理异常的机制的特点:处理异常的机制的特点:用用JavaJava类来表示异常情况,这种类被称为异常类。类来表示异常情况,这种类被称为异常类。把异常情况表示成异常类,可以充分发挥类的可扩把异常情况表示成异常类,可以充分发挥类的可扩展和可重用的优势。展和可重用的优势。Java
8、程序设计程序设计 第第6章章 JAVA异常处理异常处理JavaJava中异常类的结构中异常类的结构Java程序设计程序设计 第第6章章 JAVA异常处理异常处理Java中如何进行异常处理中如何进行异常处理Java的异常处理是通过的异常处理是通过5个关键字来实现的:个关键字来实现的:try、catch、 finally、throw、throws 捕获异常捕获异常 catchtryfinally执行可能产生执行可能产生 异常的代码异常的代码 捕获异常捕获异常 无论是否发生异常,无论是否发生异常,代码总能执行代码总能执行手动抛出异常手动抛出异常 抛出异常抛出异常 throw声明异常声明异常 声明方法
9、可能要声明方法可能要抛出的各种异常抛出的各种异常 throwsJava程序设计程序设计 第第6章章 JAVA异常处理异常处理try/catch块块-1trycatch try/catch 块后的代码段块后的代码段public void method()try / 代码段代码段(此处不会产生异常此处不会产生异常) catch (异常类型异常类型 ex) / 对异常进行处理的代码段对异常进行处理的代码段/ 代码段代码段使用使用try/catch块捕获异常,分为三种情况:块捕获异常,分为三种情况:第一种情况第一种情况 Java程序设计程序设计 第第6章章 JAVA异常处理异常处理try/catch块
10、块-2使用示例模拟第一种情况:使用示例模拟第一种情况:public class MyException public static void main(String args) System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt();switch (courseCode) case 1: System.out.println(C#编程编程); break;case 2: System.out.println(Ja
11、va编程编程); break;case 3: System.out.println(SQL基础基础); catch (Exception ex) System.out.println(输入不为数字输入不为数字!);System.out.println(欢迎提出建议欢迎提出建议!);输入:输入:2Java编程编程欢迎提出建议欢迎提出建议!控制台输出控制台输出Java程序设计程序设计 第第6章章 JAVA异常处理异常处理try/catch块块-3trycatch异常类型匹配异常类型匹配 try/catch 块后的代码段块后的代码段进入进入catch块块public void method()try
12、 / 代码段代码段 1 / 产生异常的代码段产生异常的代码段 2 / 代码段代码段 3 catch (异常类型异常类型 ex) / 对异常进行处理的代码段对异常进行处理的代码段4/ 代码段代码段5使用使用try/catch块捕获异常,分为三种情况:块捕获异常,分为三种情况:第二种情况第二种情况 产生异常对象产生异常对象 程序继续执行程序继续执行异常是一种特殊的对象,异常是一种特殊的对象,类型为类型为java.lang.Exception或其子类或其子类 发生异常发生异常Java程序设计程序设计 第第6章章 JAVA异常处理异常处理try/catch块块-4使用示例模拟第二种情况:使用示例模拟第
13、二种情况:public class MyException public static void main(String args) System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt();switch (courseCode) case 1:System.out.println(C#编程编程);break;case 2:System.out.println(Java编程编程);break;case 3:Syst
14、em.out.println(SQL基础基础); catch (Exception ex) System.out.println(输入不为数字输入不为数字!); ex.printStackTrace();System.out.println(欢迎提出建议欢迎提出建议!);输入:输入:B输入不为数字输入不为数字!异常堆栈信息异常堆栈信息欢迎提出建议欢迎提出建议!控制台输出控制台输出Java程序设计程序设计 第第6章章 JAVA异常处理异常处理printStackTrace的堆栈跟踪功能显示出程序运行到当前的堆栈跟踪功能显示出程序运行到当前类的执行流程类的执行流程public class MyEx
15、ception public static void main(String args) System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):); Scanner in = new Scanner(System.in); try int courseCode = in.nextInt(); /此处代码省略此处代码省略 catch (Exception ex) System.out.println(输入不为数字!输入不为数字!); ex.printStackTrace(); System.out.println(欢迎提出建议欢迎提出建议!); try/
16、catch块块-5java.util.InputMismatchExceptionat java.util.Scanner.throwFor(Scanner.java:840)at java.util.Scanner.next(Scanner.java:1461)at java.util.Scanner.nextInt(Scanner.java:2091)at java.util.Scanner.nextInt(Scanner.java:2050)at s2jsp.sg.ch05. MyException.main(MyException.java:23)异常类型异常类型异常堆栈信息异常堆栈信
17、息在此方法中抛出了异常在此方法中抛出了异常Java程序设计程序设计 第第6章章 JAVA异常处理异常处理try/catch块块-6trycatch异常类型不匹配异常类型不匹配 try/catch 块后的代码段块后的代码段程序中断运行程序中断运行 发生异常发生异常public void method()try / 代码段代码段 1 / 产生异常的代码段产生异常的代码段 2 / 代码段代码段 3 catch (异常类型异常类型 ex) / 对异常进行处理的代码段对异常进行处理的代码段4/ 代码段代码段5使用使用try/catch块捕获异常,分为三种情况:块捕获异常,分为三种情况:第三种情况第三种情
18、况 产生异常对象产生异常对象 Java程序设计程序设计 第第6章章 JAVA异常处理异常处理try/catch块块-7使用示例模拟第三种情况:使用示例模拟第三种情况:public class MyException2 public static void main(String args) System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt();switch (courseCode) case 1: System
19、.out.println(C#编程编程); break;case 2: System.out.println(Java编程编程); break;case 3: System.out.println(SQL基础基础); catch (NullPointerException ex) System.out.println(输入不为数字!输入不为数字!);System.out.println(欢迎提出建议!欢迎提出建议!);输入:输入:B程序中断运行程序中断运行Java程序设计程序设计 第第6章章 JAVA异常处理异常处理finally语句语句finally语句定义一个总是被执行的代码块,而不管有没
20、有出语句定义一个总是被执行的代码块,而不管有没有出现异常。现异常。public void work() try 开门 工作8个小时 /可能会抛出异常 catch(DiseaseException e) 去医院看病; finally 关门 public void work() try 开门 工作8个小时/可能会抛出异常 关门 catch(DiseaseException e) 去医院看病; Java程序设计程序设计 第第6章章 JAVA异常处理异常处理try/catch/finally -1在在try/catch块后加入块后加入finally块,可以确保无论是否发生异常,块,可以确保无论是否发生
21、异常,finally块中的代码总能被执行块中的代码总能被执行try 块块 finally 块块 catch 块块 无异常无异常 有异常有异常 Java程序设计程序设计 第第6章章 JAVA异常处理异常处理try/catch/finally-2 public class MyException3 public static void main(String args) System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextI
22、nt();switch (courseCode) case 1: System.out.println(C#编程编程); break;case 2: System.out.println(Java编程编程); break;case 3: System.out.println(SQL基础基础); catch (Exception ex) System.out.println(输入不为数字!输入不为数字!); finally System.out.println(欢迎提出建议!欢迎提出建议!);输入:输入:2Java编程编程欢迎提出建议欢迎提出建议!控制台输出控制台输出输入:输入:B输入不为数字输
23、入不为数字!欢迎提出建议欢迎提出建议!第一种情况:第一种情况:无异常无异常第二种情况:第二种情况:有异常有异常 Java程序设计程序设计 第第6章章 JAVA异常处理异常处理编写一个类编写一个类ExceptionTest1,在,在main方法中使方法中使用用try、catch、finally: 在try块中,编写被0除的代码 在catch块中,捕获被0除所产生的异常,并且打印异常信息 在finally块中,打印一条语句Java程序设计程序设计 第第6章章 JAVA异常处理异常处理多重多重catch块块-1一段代码可能会引发多种类型的异常一段代码可能会引发多种类型的异常当引发异常时,会按顺序来查
24、看每个当引发异常时,会按顺序来查看每个 catch 语句,语句,并执行第一个与异常类型匹配的并执行第一个与异常类型匹配的catch语句语句执行其中的一条执行其中的一条 catch 语句之后,其后的语句之后,其后的 catch 语句将被忽略语句将被忽略Java程序设计程序设计 第第6章章 JAVA异常处理异常处理public void method()try / 代码段代码段 / 产生异常产生异常(异常类型异常类型2) catch (异常类型异常类型1 ex) / 对异常进行处理的代码段对异常进行处理的代码段 catch (异常类型异常类型2 ex) / 对异常进行处理的代码段对异常进行处理的代
25、码段 catch (异常类型异常类型3 ex) / 对异常进行处理的代码段对异常进行处理的代码段/ 代码段代码段多重多重catch块块 -2try 与异常类型与异常类型1不匹配不匹配try/catch 块后的代码段块后的代码段发生异常发生异常产生异常对象产生异常对象catch与异常类型与异常类型2匹配匹配catchcatch程序继续执行程序继续执行进入进入catch块块Java程序设计程序设计 第第6章章 JAVA异常处理异常处理多重多重catch块块-3public class MyException4 public static void main(String args) Scanner
26、 in = new Scanner(System.in);trySystem.out.print(“请输入互联网专业的总学时:请输入互联网专业的总学时:);int totalTime = in.nextInt(); /总学时总学时System.out.print(“请输入互联网专业的课程数目:请输入互联网专业的课程数目:);int totalCourse = in.nextInt(); /课程数目课程数目System.out.println(“互联网专业的各课程的平均学时为:互联网专业的各课程的平均学时为: + totalTime / totalCourse); catch (InputMis
27、matchException e1) System.out.println(输入不为数字输入不为数字!); catch (ArithmeticException e2) System.out.println(课程数目不能为零课程数目不能为零!); catch (Exception e) System.out.println(发生错误发生错误:+e.getMessage();输入:输入:270 H 在安排在安排catch语句的顺序时,首先应该捕获最特殊的异常,语句的顺序时,首先应该捕获最特殊的异常, 然后再逐渐一般化,即先子类后父类然后再逐渐一般化,即先子类后父类 输出:输出:输入不为数字输入不
28、为数字!进入第一个进入第一个catch块块输入:输入:270 0 输出:输出:课程数目不能为零课程数目不能为零!进入第二个进入第二个catch块块Java程序设计程序设计 第第6章章 JAVA异常处理异常处理声明异常声明异常如果一个方法不想处理异常,或者异常没有在当前如果一个方法不想处理异常,或者异常没有在当前的的try catch中处理,则它必须将异常抛弃给上一中处理,则它必须将异常抛弃给上一级调用它的方法。级调用它的方法。可以通过可以通过throws 语句将异常抛语句将异常抛向上级调用方法。向上级调用方法。如果异常被回溯到如果异常被回溯到main方法仍旧没有处理,则程序方法仍旧没有处理,则
29、程序将出错,终止运行。将出错,终止运行。Java程序设计程序设计 第第6章章 JAVA异常处理异常处理声明异常声明异常public class ExTester static int method1(int x) throws Exception if(x0)throw new Exception(x0); return +x; static int method2(int x)throws Exception return method1(x); public static void main(String args)throws Exception System.out.println(m
30、ethod2(-1); main()method2()method1()方法调用堆栈异常处理采用堆栈机制Java程序设计程序设计 第第6章章 JAVA异常处理异常处理声明异常声明异常public class Teacher private String id;/ 教师编号教师编号,长度应为长度应为7 public void setId(String pId) throws IllegalArgumentException / 判断教师编号的长度是否为判断教师编号的长度是否为7 if (pId.length() = 7) id = pId; else throw new IllegalArgum
31、entException(参数长度应为参数长度应为7!); public class TeacherTest public static void main(String args) Teacher teacher = new Teacher();try teacher.setId(088); catch (IllegalArgumentException ex) System.out.println(ex.getMessage(); 由调用者捕获异常由调用者捕获异常 声明该方法可能会产生异常声明该方法可能会产生异常 Java程序设计程序设计 第第6章章 JAVA异常处理异常处理抛出异常抛出异
32、常在JAVA程序中,引发异常共有以下两种方式l使用显式 throw 语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码l使用语句或表达式在执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常throw语句用于立即无条件地引发异常,语法格式为:throw 异常对象;Java程序设计程序设计 第第6章章 JAVA异常处理异常处理抛出异常抛出异常如果在当前环境无法解决一个异常,就要将其抛出,把异常如果在当前环境无法解决一个异常,就要将其抛出,把异常交给调用者处理交给调用者处理 public class Teacher private String id; / 教师编号,长
33、度应为教师编号,长度应为7 public void setId(String pId) / 判断教师编号的长度是否为判断教师编号的长度是否为7 if (pId.length() = 7) id = pId; else throw new IllegalArgumentException(参数长度应为参数长度应为7!); public class TeacherTest public static void main(String args) Teacher teacher = new Teacher(); try teacher.setId(088); catch (IllegalArgume
34、ntException ex) System.out.println(ex.getMessage(); 抛出异常抛出异常捕获异常捕获异常参数长度应为参数长度应为7!控制台输出控制台输出Java程序设计程序设计 第第6章章 JAVA异常处理异常处理编写类编写类ExceptionTest2: 定义两个方法:go()和main() 在go方法中声明要抛出异常,在该方法体内,抛出一个Exception对象 在main()方法中,调用go方法,使用try/catch捕获go方法中抛出的异常Java程序设计程序设计 第第6章章 JAVA异常处理异常处理自定义异常类自定义异常类使用自定义异常的步骤:使用自定
35、义异常的步骤:1.通过继承通过继承java.lang.Exception类声明自己的异常类;类声明自己的异常类;2.在方法中生成自定义异常的实例,并用在方法中生成自定义异常的实例,并用throw语句抛出;语句抛出;3.在方法的声明部分用在方法的声明部分用throws语句声明该方法可能抛出的异语句声明该方法可能抛出的异常常import java.io.* ;class MyException extends Exception private int id ; public MyException(String message ,int id) super(message) ; this.id
36、= id ; public int getId() return id ; Java程序设计程序设计 第第6章章 JAVA异常处理异常处理public class TestMyException public void regist(int num) throws MyException if(num 0) throw new MyException(人数不能为负值人数不能为负值,3) ; System.out.println(人数:人数: + num) ; public void manager() try regist(-100) ; catch(MyException e) System
37、.out.println(错误!错误代码:错误!错误代码: + e.getId() ; e.printStackTrace() ; System.out.println(操作结束操作结束) ; public static void main(String args) TestMyException t = new TestMyException() ; t.manager() ; Java程序设计程序设计 第第6章章 JAVA异常处理异常处理用户定义异常用户定义异常用户定义异常是通过扩展用户定义异常是通过扩展Exception类或类或RuntimeException来创建的。来创建的。 cla
38、ss AnswerWrongException extends Exception private int result; public AnswerWrongException (int result) this.result=result; public int getResult() return result; Java程序设计程序设计 第第6章章 JAVA异常处理异常处理用户定义异常用户定义异常public class ExceptionTester public static void test(int x,int y,int z)throws AnswerWrongExcepti
39、on if(x+y!=z) throw new AnswerWrongException(z); System.out.println(x+y+=+z); public static void main(String args) try test(1,2,5); System.out.println(end); catch( AnswerWrongException e) System.out.println(result is wrong:+e.getResult(); e.printStackTrace(); Java程序设计程序设计 第第6章章 JAVA异常处理异常处理获得异常信息获得异
40、常信息Exception提供了如下方法:提供了如下方法: toString() getMessage() printStackTrace()try test(1,2,5); System.out.println(end); catch( AnswerWrongException e) e.printStackTrace(); Java程序设计程序设计 第第6章章 JAVA异常处理异常处理异常处理流程异常处理流程finally语句不被执行的唯一情况是程序先执行了终止程序的语句不被执行的唯一情况是程序先执行了终止程序的System.exit()方法方法public static void main
41、(String args) try System.out.println(Begin); System.exit(0); finally System.out.println(Finally); System.out.println(End);Java程序设计程序设计 第第6章章 JAVA异常处理异常处理异常处理流程异常处理流程public static void main(String args)throws Exception try System.out.println(Begin); new Sample().method1(-1); /出现出现SpecialException异常异常
42、 System.exit(0); catch(Exception e) System.out.println(Wrong); throw e; /如果把此行注释掉,将得到不同的运行结果如果把此行注释掉,将得到不同的运行结果 finally System.out.println(Finally); System.out.println(End);打印Begin Wrong Finallyjava.lang.SpecialException Java程序设计程序设计 第第6章章 JAVA异常处理异常处理异常处理流程异常处理流程public static int method1(int x) try
43、 if(x0)throw new Exception(x0); return x+; catch(Exception e) System.out.println(“Wrong); return -100; finally System.out.println(Finally); public static void main(String args) System.out.println( method1(-1)); 打印Wrong Finally-100Java程序设计程序设计 第第6章章 JAVA异常处理异常处理常见异常常见异常ArithmeticException:数学异常:数学异常in
44、t a=12 / 0; /抛出抛出ArithmeticExceptionNullPointerException:空指针异常:空指针异常Date d= null;System.out.println(d.toString(); /抛出抛出NullPointerExceptionArrayIndexOutOfBoundsException:下标越界异常:下标越界异常int array=new int4;array0=1; array7=1; /抛出抛出ArrayIndexOutOfBoundsExceptionClassCastException:类型转换异常:类型转换异常:Animal ani
45、mal=new Dog();Cat cat=(Animal)animal;Java程序设计程序设计 第第6章章 JAVA异常处理异常处理运行时异常运行时异常 RuntimeException类及其子类都称为运行时异常,这种异类及其子类都称为运行时异常,这种异常的特点是常的特点是Java编译器不会检查它,也就是说,当程序中编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用可能出现这类异常,即使没有用try-catch语句捕获它,也语句捕获它,也没有用没有用throws子句声明抛出它,也会编译通过。例如当以子句声明抛出它,也会编译通过。例如当以下下divide()方法的参数方法的参数
46、b为为0,执行,执行“a/b”操作时会出现操作时会出现ArrithmeticException异常,它属于运行时异常,异常,它属于运行时异常,Java编编译器不会检查它:译器不会检查它:public int divide(int a,int b) return a/b; /当参数当参数b为为0,抛出,抛出ArrithmeticException Java程序设计程序设计 第第6章章 JAVA异常处理异常处理区分运行时异常和受检查异常区分运行时异常和受检查异常运行时异常表示无法让程序恢复运行的异常,导致这种异常运行时异常表示无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误操作。一
47、旦出现了错误操作,的原因通常是由于执行了错误操作。一旦出现了错误操作,建议终止程序,因此建议终止程序,因此Java编译器不检查这种异常。编译器不检查这种异常。 public void method(int array) for(int i=0;i=array.length;i+) /当i的取值为array.length时,将抛出ArrayIndexOutOfBoundsException arrayi=1;public void method(int array) for(int i=0;iarray.length;i+) arrayi=1; /不会抛出ArrayIndexOutOfBound
48、sException修改程序代码中的错误Java程序设计程序设计 第第6章章 JAVA异常处理异常处理区分运行时异常和受检查异常区分运行时异常和受检查异常受检查异常表示程序可以处理的异常,如果抛出异常的方法本受检查异常表示程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。序恢复运行,不至于终止程序。 如果一个方法可能出现受检查异常,要么用如果一个方法可能出现受检查异常,要么用try-catch语句捕语句捕获,要么用获,要么用throws子句声明将它抛出,否则会导致编译错子句声明
49、将它抛出,否则会导致编译错误。误。 void method1() throws IOException /合法/编译错误,必须捕获或声明抛出IOExceptionvoid method2() method1(); /合法,声明抛出IOException void method3()throws IOException method1(); /合法,声明抛出Exceptionvoid method4()throws Exception method1(); /合法,捕获IOException void method5() try method1(); catch(IOException e)Java程序设计程序设计 第第6章章 JAVA异常处理异常处理程序调试程序调试9-1令狐冲锲而不舍地练,但还是不令人满意。怎么回事呢?令狐冲锲而不舍地练,但还是不令人满意。怎么回事呢?他仔细地分析,哪一步出错了呢?他仔细地分析,哪一步出错了呢?歌唱得不好?钢琴演奏不过关?歌唱得不好?钢琴演奏不过关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿幕设备租赁合同范本
- 网吧转让过户合同范本
- 物业与第三方合同协议
- 2025年小学三年级数学第一学期培训试卷(含答案)
- 融资额度协议融资合同
- 1 沁园春·雪2024-2025学年九年级语文上册同步教学设计(河北专版)
- 衣服定做合同退订协议
- 购买空调电视合同范本
- 网吧消防建设合同范本
- 物业自治服务合同范本
- 嘉兴辅警考试试题及答案
- 工程管理专业毕业论文范文集
- 回收厂区废料合同范本
- 第13课+清朝前中期的鼎盛与危机-2025-2026学年高一上学期统编版必修中外历史纲要上
- 药物性肝损伤科普
- 延续护理模式
- 财务会计招聘模板
- 2025企业级AI Agent(智能体)价值及应用报告
- 《现代文阅读技巧提升:高中语文阅读教案》
- 2025年江西省交通投资集团有限责任公司社会招聘43人笔试备考题库及答案详解1套
- 医院医学影像科科室年终总结
评论
0/150
提交评论