《Java程序设计教程》教学课件 项目六PPT推荐.pptx
- 文档编号:13082030
- 上传时间:2022-10-04
- 格式:PPTX
- 页数:22
- 大小:149.24KB
《Java程序设计教程》教学课件 项目六PPT推荐.pptx
《《Java程序设计教程》教学课件 项目六PPT推荐.pptx》由会员分享,可在线阅读,更多相关《《Java程序设计教程》教学课件 项目六PPT推荐.pptx(22页珍藏版)》请在冰豆网上搜索。
classException1publicstaticvoidmain(Stringargs)/创建FileInputStream对象FileInputStreamfis=newFileInputStream(text.txt);
intb;
Java程序设计教程,2使用throws声明抛出异常,importjava.io.*;
classException2publicstaticvoidmain(Stringargs)throwsFileNotFoundException,IOExceptionFileInputStreamfis=newFileInputStream(text.txt);
while(b=fis.read()!
=-1)/读文件字节数据有效时循环System.out.print(b);
/显示读出的字节数据fis.close();
/关闭文件System.out.println(程序正常结束);
编译并运行程序,如果在工程文件夹中存在“text.txt”文件,系统将按字节读出文件内容并显示。
否则,将显示如下信息:
Exceptioninthreadmainjava.io.FileNotFoundException:
text.txt(系统找不到指定的文件。
)atjava.io.FileInputStream.open(NativeMethod)atjava.io.FileInputStream.(UnknownSource)atjava.io.FileInputStream.(UnknownSource)atException2.main(Exception2.java:
8),Java程序设计教程,3使用try-catch语句捕获异常并进行处理,Java提供了try-catch语句。
其中,应将可能出现异常的语句放在try代码块中,而将各种异常处理代码按类型放在多个catch代码块中。
publicclassException3publicstaticvoidmain(Stringargs)try/try代码块,其中可能会出现异常FileInputStreamfis=newFileInputStream(text.txt);
catch(FileNotFoundExceptione)/利用catch语句捕捉FileNotFoundException异常并处理/FileNotFoundException为异常类型,e为异常对象System.out.println(e);
System.out.println(message(异常提示):
+e.getMessage();
catch(IOExceptione)/利用catch语句捕捉IOException异常并处理System.out.println(e);
System.out.println(程序正常结束);
Java程序设计教程,二、Java中异常的特点和处理机制,从大的方面讲,Java的异常可以分为非运行时异常和运行异常。
就像前面的例子那样,如果程序出现非运行时异常,程序将无法通过编译,我们必须通过为程序增加throws声明或try-catch语句加以解决。
在Java中,系统把程序在运行时可能出现的故障分为两类:
一类是非致命性的,通过某种程度的处理后,程序还能继续运行,这类情况称为异常(Exception),如打开一个文件,发现文件不存在;
另一类是致命性的,即程序不能恢复运行,这类情况称为错误(Error),如程序在运行过程中内存耗尽。
在Java程序运行期间,如果出现了异常事件,系统会自动生成一个异常对象。
该对象包含了一组信息,指明了异常的类型,以及异常发生时程序的状态等。
对于这些信息,我们可以通过直接访问对象,或者调用对象方法来获取。
Java程序设计教程,(4)对于异常的处理,我们可以采用如下几种方法:
在方法体中增加try-catch语句,从而告知系统,当try代码,块出现异常时,利用catch语句捕捉异常,并利用catch代码块对异常加以处理,从而让程序能继续运行。
为方法名增加throws声明,抛出一些异常。
如果用户能够明确预测到异常,则可通过在程序中增加throw语句,让程序自身而不是系统来抛出异常。
如果希望在程序退出异常处理代码时对程序进行一些统一处理,可以将必须执行的代码放在finally代码块中。
三、Java异常类及其方法在Java中,每一个异常都由一个异常类来代表,所有异常类都继承了java.lang.Throwable类。
其中,Error为错误类,Exception类为异常类。
异常类又可以分为运行时异常类(RuntimeException)和非运行时异常类两种。
Java程序设计教程,Java程序设计教程,常见运行时异常类,Java程序设计教程,常见非运行时异常类,Java程序设计教程,任务二异常的处理,一、try-catch语句try-catch语句的一般格式为:
try/可能发生异常的代码块catch(异常类型异常对象名)/异常处理代码块try语句块用大括号“”指定了一段代码,此段代码在运行过程中可能会生成一个或多个异常对象。
try语句块后面跟随一个或多个catch语句,用于处理try代码块中生成的的异常对象。
catch语句中的参数类型指明了它能够捕获的异常类型,这个类必须为Throwable类的子类。
当try语句块中的某条语句抛出一个异常对象时,如果与catch语句指定的参数相匹配,那么就会执行这个catch语句。
Java程序设计教程,案例6-1数据输入格式检查,【案例描述】利用try/catch代码块检查用户输入的数据是否是有效的浮点数。
如果是,则将其记录下来,否则提示用户重新输入。
【技术要点】基于Scanner类创建对象时,其数据源为System.in,表示来自键盘。
在try代码块内,我们利用Scanner类的nexrDouble()方法来读取数据并分析它是不是双精度浮点数。
如果是,则读取数据并输出,然后通过设置循环变量来退出do-while循环;
否则,如果读取的数据不是双精度浮点数,则系统将产生一个InputMismatchException(输入不匹配异常)异常。
该异常将被catch语句捕捉,catch代码块用来显示数据输入错误提示信息,并提示用户重新输入数据,然后通过设置循环变量使do-while循环继续运行,要求用户重新输入数据。
Java程序设计教程,ackageChapter6;
importjava.util.*;
publicclassDataInFormatCheckpublicstaticvoidmain(Stringargs)throwsIOExceptionScannerin=newScanner(System.in);
booleandataright=false;
/设置控制变量dataright并赋值do/循环控制trySystem.out.print(请输入一个浮点数:
);
/将字符串解析为带符号的double类型数据doublenumberx=in.nextDouble();
/如果输入正确,则执行如下的语句System.out.println(numberx);
dataright=false;
/修改循环变量,使循环结束/捕捉输入数据错误异常catch(InputMismatchExceptione)System.out.println(数据无效,请重新输入!
/修改循环变量,使之有效,继续循环dataright=true;
/读取数据换行Stringx=in.nextLine();
while(dataright);
Java程序设计教程,二、使用多重catch语句,在某些情况下,一段代码块可能引发多个异常,处理这种情况时就需要定义多个catch语句,每个catch语句捕获一种类型的异常。
当异常发生时,每一个catch语句依次被检查,第一个匹配异常类型的子句被执行。
当一个catch语句执行后,其他的catch语句将被忽略,程序从try/catch代码块后面的语句继续执行。
try/可能发生异常的代码块catch(异常类型1异常对象名1)/异常处理代码块1catch(异常类型2异常对象名2)/异常处理代码块2catch(异常类型n异常对象名n)/异常处理代码块n,Java程序设计教程,三、finally语句,finally语句用来为异常处理提供一个统一的出口。
通常,finally语句主要用于资源清理等工作,如关闭打开的文件、断开网络连接等。
不论在try代码块中是否发生了异常,finally代码块中的语句都会被执行。
try/可能发生异常的代码块catch(异常类型,异常对象名)/异常处理代码块finally/最终处理代码块,Java程序设计教程,四、throw语句,利用throw语句可以明确地抛出一个异常。
一般格式如下:
throw;
其中,exception是Throwable类或其子类,而且不能为多个。
publicclassException7privatestaticvoidthrowException()tryStrings=null;
if(s=null)/s为null时抛出NullPointerException异常thrownewNullPointerException(sisnull);
catch(NullPointerExceptione)System.out.println(“方法throwException()中抛出一个NullPointerException异常。
throwe;
/抛出异常e,/监控方法,publicstaticvoidmain(Stringargs)trythrowException();
catch(NullPointerExceptione),System.out.println(“捕获方法throwException()中的异常NullPointerException);
Java程序设计教程,五、throws语句,对于非运行时异常,如果程序中没有进行捕获,则必须在方法声明时使用throws声明进行抛出,否则将会导致编译错误。
throws声明的一般格式如下:
返回类型方法名()throws异常列表/方法体publicclassException8/声明抛出异常IllegalAccessExceptionprivatestaticvoidthrowException()throwsIllegalAccessExceptionthrownewIllegalAccessException(非法访问异常);
publicstaticvoidmain(Stringargs)try,/监控方法,t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计教程 Java程序设计教程教学课件 项目六 Java 程序设计 教程 教学 课件 项目