《Java学习课件 第3章 类的方法,异常.ppt》由会员分享,可在线阅读,更多相关《Java学习课件 第3章 类的方法,异常.ppt(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java学习课件第3章类的方法,异常JAVA语言程序设计清华大学 郑莉目录目录l3.1 方法的控制流程方法的控制流程l3.2 异常处理简介异常处理简介l3.3 方法的重载方法的重载(overloading)l3.4 本章小结本章小结2JAVA语言程序设计清华大学 郑莉JAVA语言程序设计清华大学 郑莉JAVA语言程序设计清华大学 郑莉JAVA语言程序设计清华大学 郑莉lex3_1 输入一个年份,判断它是不是闰年。闰年:能被4整除但不能被100整除,或者能被400整除。public class ex3_1 public static void main(String args)throws IO
2、Exception int year;boolean IsLeapYear;System.out.println(Enter the year:);BufferedReader in=new BufferedReader(new InputStreamReader(System.in);year=(new Integer(in.readLine().intValue();3.1.1 if选择结构选择结构(续续)ex3_1.java方法的控制流程6JAVA语言程序设计清华大学 郑莉 IsLeapYear=(year%4=0&year%100!=0)|(year%400=0);if(IsLeapY
3、ear)System.out.print(year);System.out.println(is a leap year);else System.out.print(year);System.out.println(is not a leap year);3.1.1 if选择结构选择结构(续续)ex3_1.java方法的控制流程7JAVA语言程序设计清华大学 郑莉l输入两个整数比较大小输入两个整数比较大小import java.io.*;public class ex3_2 public static void main(String args)throws IOException int
4、x,y;BufferedReader in=new BufferedReader(new InputStreamReader(System.in);System.out.println(Enter x and y:);x=(new Integer(in.readLine().intValue();y=(new Integer(in.readLine().intValue();if(x!=y)if(xy)System.out.println(xy);else System.out.println(xb)System.out.println(The larger one is:+a);else S
5、ystem.out.println(The larger one is:+b);l用条件运算符重写用条件运算符重写:System.out.println(The larger one is:+(ab)?a:b);3.1.1 if选择结构选择结构(续续)以条件运算符代替以条件运算符代替if_else方法的控制流程9JAVA语言程序设计清华大学 郑莉l计算每个月的天数计算每个月的天数static int daysInMonth(int month)if(month=2)return(28);else if(month=4)|(month=6)|(month=9)|(month=11)return(
6、30);else return(31);方法的控制流程3.1.1 if选择结构选择结构(续续)例例3_110JAVA语言程序设计清华大学 郑莉l已知一个学生的分数,给出其分数等级。已知一个学生的分数,给出其分数等级。90-100分为级;分为级;80-89分为分为B级;级;70-79分为级;分为级;60-69分为分为D级;级;0-59分为分为E级级public class IfElseDemo public static void main(String args)int testscore=76;char grade;if(testscore=90)grade=A;else if(testsc
7、ore=80)grade=B;else if(testscore=70)grade=C;else if(testscore=60)grade=D;else grade=F;System.out.println(Grade=+grade);程序输出:程序输出:Grade=C3.1.1 if选择结构选择结构(续续)ifElseDemo.java方法的控制流程11JAVA语言程序设计清华大学 郑莉3.1.2 switch选择结构选择结构lswitch语句是多分支的选择结构语句是多分支的选择结构switch(switch-expression)case value1:statements for ca
8、se1;break;case value2:statements for case2;break;.case valueN:statements for caseN;break;default:statements for default case;break;l注意问题注意问题switch-expression、常量值value1到valueN必须是整形或字符型如果表达式的值和某个case后面的值相同,则从该case之后开始执行,直到break语句为止default是可有可无的,若没有一个常量与表达式的值相同,则从default之后开始执行方法的控制流程12JAVA语言程序设计清华大学 郑莉
9、if if(i=(i=1 1)statementA();statementA();else ifelse if(i=(i=2 2)statementB();statementB();else ifelse if(i=(i=3 3)|(i=)|(i=4 4)statementC();statementC();else ifelse if(i=(i=5 5)statementD();statementD();elseelse statementF();statementF();switchswitch(i)(i)casecase 1 1:statementA();break;statementA(
10、);break;casecase 2 2:statementB();break;statementB();break;casecase 3 3:casecase 4 4:statementC();break;statementC();break;casecase 5 5:statementD();break;statementD();break;defaultdefault:statementF();:statementF();3.1.2 switch选择结构选择结构(续续)用用switch代替代替if方法的控制流程13JAVA语言程序设计清华大学 郑莉l使用使用switch结构计算每个月的天
11、数结构计算每个月的天数static int daysInMonth(int month)int days;switch(month)case 2:days=28;break;case 4:case 6:case 9:case 11:days=30;break;default:days=31;return(days);3.1.2 switch选择结构选择结构(续续)例例3_2方法的控制流程14JAVA语言程序设计清华大学 郑莉l用用switch语句实现成绩分类的功能语句实现成绩分类的功能public class Grade public static char gradeLevel(double
12、 g)int n=(int)Math.floor(g/10);switch(n)case 10:case 9:return(A);case 8:return(B);case 7:return(C);case 6:return(D);default:return(E);3.1.2 switch选择结构选择结构(续续)例例3_3方法的控制流程15JAVA语言程序设计清华大学 郑莉public static void main(String args)System.out.println(gradeLevel(100)=+gradeLevel(100);System.out.println(grad
13、eLevel(95.5)=+gradeLevel(95.5);System.out.println(gradeLevel(88)=+gradeLevel(88);System.out.println(gradeLevel(72)=+gradeLevel(72);System.out.println(gradeLevel(68.5)=+gradeLevel(68.5);System.out.println(gradeLevel(60)=+gradeLevel(60);System.out.println(gradeLevel(59.5)=+gradeLevel(59.5);System.out.
14、println(gradeLevel(35)=+gradeLevel(35);3.1.2 switch选择结构选择结构(续续)例例3_3方法的控制流程16JAVA语言程序设计清华大学 郑莉lex3_3输入06之间的某一个整数,然后把它转换成星期 输出。(0对应星期日)import java.io.*;public class ex3_3 public static void main(String args)throws IOException int day;BufferedReader in=new BufferedReader(new InputStreamReader(System.i
15、n);day=(new Integer(in.readLine().intValue();3.1.2 switch选择结构选择结构(续续)补充补充ex3_3.java方法的控制流程17JAVA语言程序设计清华大学 郑莉 switch(day)case 0:System.out.println(Sunday);break;case 1:System.out.println(Monday);break;case 2:System.out.println(Tuesday);break;case 3:System.out.println(Wednesday);break;case 4:System.o
16、ut.println(Thursday);break;case 5:System.out.println(Friday);break;case 6:System.out.println(Saturday);break;default:System.out.println(Day out of range Sunday.Saturday);break;3.1.2 switch选择结构选择结构(续续)补充补充ex3_3.java方法的控制流程18JAVA语言程序设计清华大学 郑莉lfor循环结构循环结构是Java三个循环语句中功能较强、使用较广泛的一个for循环可以嵌套一般语法格式如下for(st
17、art-expression;check-expression;update-expression)/body of the loop;解释lstart-expression完成循环变量和其他变量的初始化工作lcheck-expression是返回布尔值的条件表达式,用于判断循环是否继续lupdate-expression用来修整循环变量,改变循环条件l三个表达式之间用分号隔开3.1.3 for循环结构循环结构方法的控制流程19JAVA语言程序设计清华大学 郑莉lFor语句的执行过程语句的执行过程首先根据初始表达式start-expression,完成必要的初始化工作;再判断表达式check-
18、expression的值,若为真,则执行循环体执行完循环体后再返回表达式update-expression,计算并修改循环条件,这样一轮循环就结束了第二轮循环从计算并判断表达式check-expression开始,若表达式的值仍为真,则循环继续,否则跳出整个for语句执行for循环下面的句子3.1.3 for循环结构循环结构(续续)方法的控制流程20JAVA语言程序设计清华大学 郑莉l打印九九乘数表打印九九乘数表public class MultiTable public static void main(String args)for(int i=1;i=9;i+)for(int j=1;j
19、=i;j+)System.out.print(+i+*+j+=+i*j);System.out.println();3.1.3 for循环结构循环结构(续续)方法的控制流程21JAVA语言程序设计清华大学 郑莉l运行结果如下:运行结果如下:1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*
20、7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=813.1.3 for循环结构循环结构(续续)运行结果运行结果22JAVA语言程序设计清华大学 郑莉l输入一个整数,输出它所有的因数输入一个整数,输出它所有的因数import java.io.*;public class ex3_7 public static void main(String args)throws IOException int n,k;B
21、ufferedReader in=new BufferedReader(new InputStreamReader(System.in);System.out.println(Enter a positive integer:);n=(new Integer(in.readLine().intValue();System.out.print(Number +n+Factors );for(k=1;k=n;k+)if(n%k=0)System.out.print(k+);System.out.println();3.1.3 for循环结构循环结构(续续)补充补充ex3_7.java方法的控制流程
22、23JAVA语言程序设计清华大学 郑莉l逗号运算符逗号运算符可用在 for 循环控制表达式的初始化和递增两部分。在这两部分中可以存在多个由逗号分隔的语句,这些语句会被依次计算public class ex3_8 public static void main(String args)for(int i=1,j=i+10;i 5;i+,j=i*2)System.out.println(i=+i+j=+j);3.1.3 for循环结构循环结构(续续)逗号运算符逗号运算符方法的控制流程24JAVA语言程序设计清华大学 郑莉lwhile语句语句实现“当型”循环,其一般语法格式如下:while(chec
23、k-expression)/body of the loop;解释l条件表达式(check-expression)的返回值为布尔型l循环体可以是单个语句,也可以是复合语句块执行过程l先判断check-expression的值,为真则执行循环体l循环体执行完后再无条件转向条件表达式做计算与判断;当计算出条件表达式的值为假时,跳过循环体执行while语句后面的语句。若为真,则继续执行循环3.1.4 while循环结构循环结构方法的控制流程25JAVA语言程序设计清华大学 郑莉l循环接受并输出从键盘输入的字符,直到循环接受并输出从键盘输入的字符,直到输入的字符为回车为止输入的字符为回车为止char
24、ch=a;while(ch!=n)System.out.println(ch);ch=(char)System.in.read();/接收键盘输入3.1.4 while循环结构循环结构(续续)方法的控制流程26JAVA语言程序设计清华大学 郑莉l计算数列计算数列1,2,10 的和。的和。public class ex3_4 public static void main(String args)int i=1,sum=0;while(i=10)sum+=i;i+;System.out.println(sum=+sum);3.1.4 while循环结构循环结构(续续)补充补充ex3_4.java
25、方法的控制流程27JAVA语言程序设计清华大学 郑莉l计算存款收益:假设银行中存款计算存款收益:假设银行中存款10000元,按元,按11.25%的利率,的利率,一年后连本带利将变为一年后连本带利将变为11125元。你若将此款继续存入银行,元。你若将此款继续存入银行,试问多长时间就会连本带利翻一番试问多长时间就会连本带利翻一番import java.text.*;public class Examp3_4 public static void main(String args)double original,money,interest;int years=0;original=money=10
26、000;interest=11.25/100;System.out.println(year money);3.1.4 while循环结构循环结构(续续)例例3_4方法的控制流程28JAVA语言程序设计清华大学 郑莉 while(money 2*original)years=years+1;money=money+(interest*money);System.out.println(+years+new DecimalFormat(0.00).format(money);System.out.println();System.out.println(第 +years+年存款额达到 +new
27、DecimalFormat(0.00).format(money)+元。);3.1.4 while循环结构循环结构(续续)例例3_4方法的控制流程29JAVA语言程序设计清华大学 郑莉l运行结果运行结果year money 1 11125.00 2 12376.56 3 13768.93 4 15317.93 5 17041.20 6 18958.33 7 21091.14 第 7 年存款额达到 21091.14元。3.1.4 while循环结构循环结构(续续)例例3_4运行结果运行结果方法的控制流程30JAVA语言程序设计清华大学 郑莉ldo-while语句语句实现“直到型”循环一般语法结构
28、如下do /body of the loop;while(check-expression);其使用与while语句很类似,不同的是它首先无条件的执行一遍循环体,再来判断条件表达式的值,若表达式的值为真,则再运行循环体,否则跳出do-while循环,执行下面的语句特点:它的循环体至少要执行一次3.1.5 do-while循环结构循环结构方法的控制流程31JAVA语言程序设计清华大学 郑莉/while(i=10)sum+=i;i+;System.out.println (sum=+sum);/do sum+=i;i+;while(i=10);System.out.println (sum=+su
29、m);比较这两段程序比较这两段程序3.1.5 do-while循环结构循环结构(续续)方法的控制流程32JAVA语言程序设计清华大学 郑莉l输入一个整数,然后输出它的翻转形式输入一个整数,然后输出它的翻转形式import java.io.*;public class ex3_5 public static void main(String args)throws IOException int n,right_digit,newnum=0;BufferedReader in=new BufferedReader(new InputStreamReader(System.in);System.o
30、ut.println(Enter the number:);n=(new Integer(in.readLine().intValue();System.out.print(The number in reverse order is );do right_digit=n%10;System.out.print(right_digit);n/=10;while(n!=0);System.out.println();3.1.5 do-while循环结构循环结构(续续)补充补充ex3_5.java方法的控制流程33JAVA语言程序设计清华大学 郑莉l功能功能跳出循环,不再执行剩余部分l适用场合适用
31、场合在switch 结构中,用来终止switch语句的执行在for循环及while循环结构中,用于终止break语句所在的最内层循环;与标号一同使用时,将跳出标号所标识的循环也可用在代码块中,用于跳出它所指定的块3.1.6 break语句语句方法的控制流程34JAVA语言程序设计清华大学 郑莉l简单简单break应用举例应用举例public class BreakTest public static void main(String args)String output=;int i;for(i=1;i=10;i+)if(i=5)break;/break loop only if count=
32、5 output+=i+;output+=nBroke out of loop at i=+i;System.out.println(output);方法的控制流程3.1.6 break语句语句(续续)例例3_535JAVA语言程序设计清华大学 郑莉l运行结果运行结果1 2 3 4Broke out of loop at i=5l解释解释执行break语句时,程序流程跳出for循环3.1.6 break语句语句(续续)例例3_5运行结果运行结果方法的控制流程36JAVA语言程序设计清华大学 郑莉l在嵌套循环中使用在嵌套循环中使用break语句:使用下面的程序来语句:使用下面的程序来实现例实现例
33、3-4的九九乘法表的九九乘法表public class Examp3_6public static void main(String args)for(int i=1;i=9;i+)for(int j=1;j i)break;System.out.print(+i+*+j+=+i*j);System.out.println();3.1.6 break语句语句(续续)例例3_6方法的控制流程37JAVA语言程序设计清华大学 郑莉lbreak与与label一同使用举例一同使用举例public class Examp3_7public static void main(String args)out
34、er:for(int i=1;i=9;i+)for(int j=1;j i)break;if(i=6)break outer;System.out.print(+i+*+j+=+i*j);System.out.println();3.1.6 break语句语句(续续)例例3_7方法的控制流程38JAVA语言程序设计清华大学 郑莉l运行结果运行结果 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25l说明说明第一个break语句跳出内层循环第二个break
35、outer语句则跳出标号outer所标识的循环,即外重循环3.1.6 break语句语句(续续)例例3_7运行结果运行结果方法的控制流程39JAVA语言程序设计清华大学 郑莉lcontinue语句语句必须用于循环结构中停止本次迭代,回到循环起始处,开始下一次迭代过程有两种使用格式l不带标号的continue语句终止当前这一轮的循环,跳出本轮循环剩余的语句,直接进入当前循环的下一轮l带标号的continue语句使程序的流程直接转入标号标明的循环层次3.1.7 continue语句语句方法的控制流程40JAVA语言程序设计清华大学 郑莉l不带标号的不带标号的continue语句语句在while或d
36、o-while循环中,会使流程直接跳转至条件表达式在for循环中,会使流程跳转至表达式update-expression,计算并修改循环变量后再判断循环条件3.1.7 continue语句语句(续续)不带标号的不带标号的continue语句语句方法的控制流程41JAVA语言程序设计清华大学 郑莉l简单的简单的continue语句举例语句举例public class ContinueTestpublic static void main(String args)String output=;int i;for(i=1;i=10;i+)if(i=5)continue;/skip remaining
37、 code in this loop output+=i+;output+=nUsing continue to skip printing 5;output+=ni=+i;System.out.println(output);3.1.7 continue语句语句(续续)例例3_8方法的控制流程42JAVA语言程序设计清华大学 郑莉l运行结果运行结果1 2 3 4 6 7 8 9 10Using continue to skip printing 5i=11l说明说明continue语句并没有跳出循环体,而是跳过本次循环,进入下一轮循环3.1.7 continue语句语句(续续)例例3_8运行
38、结果运行结果方法的控制流程43JAVA语言程序设计清华大学 郑莉l打印打印2到到9之间的偶数的平方,但是不包括之间的偶数的平方,但是不包括偶数偶数6的平方的平方public class Examp3_9public static void main(String args)for(int i=2;i=9;i+=2)if(i=6)continue;System.out.println(i*i);3.1.7 continue语句语句(续续)例例3_9方法的控制流程44JAVA语言程序设计清华大学 郑莉l带标号的带标号的continue语句语句格式如下continue label;标号label应该
39、定义在程序中某一循环语句前面,用来标志这个循环结构3.1.7 continue语句语句(续续)带标号的带标号的continue语句语句方法的控制流程45JAVA语言程序设计清华大学 郑莉l九九乘法表也可用下面的程序来实现九九乘法表也可用下面的程序来实现public class Examp3_10public static void main(String args)outer:for(int i=1;i10;i+)inner:for(int j=1;j10;j+)if(ij)System.out.println();continue outer;System.out.print(+i+*+j+
40、=+i*j);l当执行到满足条件当执行到满足条件ij时,跳出时,跳出inner循环,直接跳到循环,直接跳到outer循环,计算并修改循环,计算并修改i的值,进行下一轮的循环的值,进行下一轮的循环3.1.7 continue语句语句(续续)例例3_10方法的控制流程46JAVA语言程序设计清华大学 郑莉l异常处理异常处理在进行程序设计时,错误的产生是不可避免的。所谓错误,是在程序运行过程中发生的异常事件,这些事件的发生将阻止程序的正常运行如何处理错误?把错误交给谁去处理?程序又该如何从错误中恢复?为了加强程序的鲁棒性,Java语言具有特定的运行错误处理机制3.2 异常处理简介异常处理简介47JA
41、VA语言程序设计清华大学 郑莉3.2.1 异常处理的意义异常处理的意义l异常的基本概念异常的基本概念又称为例外,是特殊的运行错误对象是面向对象规范的一部分,是异常类的对象Java中声明了很多异常类,每个异常类都代表了一种运行错误,类中包含了l该运行错误的信息l处理错误的方法每当Java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应时,系统都会产生一个相应的该异常类的对象,即产生一个异常异常处理简介48JAVA语言程序设计清华大学 郑莉ljava处理错误的方法处理错误的方法抛出(throw)异常l在方法的运行过程中,如果发生了异常,则该方法生成一个代表该异常的对象并把它
42、交给运行时系统,运行时系统便寻找相应的代码来处理这一异常捕获(catch)异常l运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回溯,直到找到包含相应异常处理的方法为止3.2.1 异常处理的意义异常处理的意义(续续)异常处理简介49JAVA语言程序设计清华大学 郑莉Method4Method3Method2Method1探测抛出异常捕获处理异常调用3.2.1 异常处理的意义异常处理的意义(续续)异常处理示意图异常处理示意图异常处理简介50JAVA语言程序设计清华大学 郑莉lJava异常处理机制的优点异常处理机制的优点将错误处理代码从常规代码中分离出来按错误类型和差别分组对无法预测的错误
43、的捕获和处理克服了传统方法的错误信息有限的问题把错误传播给调用堆栈3.2.1 异常处理的意义异常处理的意义(续续)异常处理简介51JAVA语言程序设计清华大学 郑莉3.2.2 错误的概念错误的概念l错误错误程序运行过程中发生的异常事件根据错误的严重程度不同,可分为两类l错误致命性的,用户程序无法处理Error类是所有错误类的父类l异常非致命性的,可编制程序捕获和处理Exception类是所有异常类的父类异常处理简介52JAVA语言程序设计清华大学 郑莉l再对异常进行分类再对异常进行分类非检查型异常l不能期望程序捕获的异常(例如数组越界,除零等)l继承自RuntimeExceptionl在方法中
44、不需要声明,编译器也不进行检查检查型异常l其他类型的异常l如果被调用的方法抛出一个类型为E的检查型异常,那么调用者必须捕获E或者也声明抛出E(或者E的一个父类),对此编译器要进行检查3.2.2 错误的概念错误的概念(续续)异常处理简介53JAVA语言程序设计清华大学 郑莉3.2.2 错误的概念错误的概念(续续)异常和错误类的层次结构异常和错误类的层次结构异常处理简介54JAVA语言程序设计清华大学 郑莉lJava预定义的一些常见异常预定义的一些常见异常ArithmeticExceptionl整数除法中除数为0NullPointerException l访问的对象还没有实例化NegativeAr
45、raySizeException l创建数组时元素个数是负数ArrayIndexOutOfBoundsExceptionl访问数组元素时,数组下标越界ArrayStoreExceptionl程序试图向数组中存取错误类型的数据FileNotFoundExceptionl试图存取一个并不存在的文件IOExceptionl通常的I/O错误3.2.2 错误的概念错误的概念(续续)预定义的一些常见异常预定义的一些常见异常异常处理简介非检查型异常检查型异常55JAVA语言程序设计清华大学 郑莉l测试系统定义的运行异常测试系统定义的运行异常数组越界出数组越界出现的异常现的异常import java.io.*
46、;public class HelloWorld public static void main(String args)int i=0;String greetings =Hello world!,No,I mean it!,HELLO WORLD!;while(i 4)System.out.println(greetingsi);i+;3.2.2 错误的概念错误的概念(续续)例例3_11异常处理简介56JAVA语言程序设计清华大学 郑莉l运行结果运行结果Hello world!No,I mean it!HELLO WORLD!Exception in thread main java.la
47、ng.ArrayIndexOutOfBoundsException at HelloWorld.main(HelloWorld.java:7)l说明说明访问数组下标越界,导致ArrayIndexOutOfBoundsException异常该异常是系统定义好的类,对应系统可识别的错误,所以Java虚拟会自动中止程序的执行流程,并新建一个该异常类的对象,即抛出数组出界异常3.2.2 错误的概念错误的概念(续续)例例3_11运行结果运行结果异常处理简介57JAVA语言程序设计清华大学 郑莉3.2.3 异常的处理异常的处理l对于检查型异常,对于检查型异常,Java强迫程序必须强迫程序必须进行处理。处理
48、方法有两种:进行处理。处理方法有两种:声明抛出异常l不在当前方法内处理异常,而是把异常抛出到调用方法中捕获异常l使用trycatch()块,捕获到所发生的异常,并进行相应的处理异常处理简介58JAVA语言程序设计清华大学 郑莉l声明抛出异常声明抛出异常如果程序员不想在当前方法内处理异常,可以使用throws子句声明将异常抛出到调用方法中如果所有的方法都选择了抛出此异常,最后 JVM将捕获它,输出相关的错误信息,并终止程序的运行。在异常被抛出的过程中,任何方法都可以捕获它并进行相应的处理3.2.3 异常的处理异常的处理(续续)声明抛出异常声明抛出异常异常处理简介59JAVA语言程序设计清华大学
49、郑莉3.2.3 异常的处理异常的处理(续续)一个例子一个例子public void openThisFile(String fileName)throws java.io.FileNotFoundException /code for method public void getCustomerInfo()throws java.io.FileNotFoundException /do something this.openThisFile(customer.txt);/do something l如果在如果在openThisFile中抛出了中抛出了FileNotfoundException异
50、常,异常,getCustomerInfo将停止执行,并将此异常传送给它的将停止执行,并将此异常传送给它的调用者调用者异常处理简介60JAVA语言程序设计清华大学 郑莉l语法格式语法格式try statement(s)catch(exceptiontype name)statement(s)finally statement(s)3.2.3 异常的处理异常的处理(续续)捕获异常捕获异常异常处理简介61JAVA语言程序设计清华大学 郑莉l说明说明try 语句 l其后跟随可能产生异常的代码块catch语句l其后跟随异常处理语句,通常用到两个方法getMessage()返回一个字符串对发生的异常进行描