第5章 异常处理与输入输出.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第5章 异常处理与输入输出.ppt》由会员分享,可在线阅读,更多相关《第5章 异常处理与输入输出.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章 异常处理与输入输出异常处理与输入输出异常处理输入输出一、异常异常指的是程序运行过程中出现的非正常事件。其中非正常事件指的是被0除、用户输入出错、找不到文件等异常指的是运行错误,编译错误不是异常Java对异常的处理1.提供大量的异常类(1)Java预定义了很多Exception类和Error类及其大量的子类来描述异常。这些类都是Throwable类的子类。(2)Java的异常类分为 运行时异常类:继承RuntimeException的类 非运行时异常类:除RuntimeException类及其子类外 见教材p1312.异常处理方式(1)系统自动处理 一旦程序中出现异常,运行时系统将会
2、自动产生一个相应的异常类对象,每一个异常事件都由一个异常对象来描述。public class ExceptionExample static int num;public static void main(String args)num=Integer.parseInt(args0);System.out.println(100整除+num+=+100/num);本程序若输入num值为0,则产生ArithmeticException异常类对象(2)程序员主动干预异常运用异常处理机制对可能出现的异常进行干预,干预手段两种:a.使用trycatchfinally结构对异常进行捕获和处理 b.通过t
3、hrow或throws关键字将异常抛出。a.使用trycatchfinally结构对异常进行捕获和处理其语法格式:try/程序代码(可能导致异常的代码)catch(异常类类型1 对象名1)/程序代码 catch(异常类类型2 对象名2)/程序代码 finally/程序代码 说明请见教材p133例:利用trycatchfinally结构捕获ExceptionExample类中所有的异常public class ExceptionExample static int num;public static void main(String args)try num=Integer.parseInt(a
4、rgs0);System.out.println(100整除整除+num+=+100/num);catch(ArrayIndexOutOfBoundsException e)System.out.println(你还没有输入呢,请输入整数值你还没有输入呢,请输入整数值!);catch(NumberFormatException e)System.out.println(你输入的是小数或字符,请输入整数值你输入的是小数或字符,请输入整数值!);catch(ArithmeticException e)System.out.println(你输入的是你输入的是0,请输入非,请输入非0整数值整数值!)
5、;b.通过throw或throws关键字将异常抛出(a)利用throw关键字直接抛出异常在编写程序的过程中,对可能会引发异常的地方直接使用throw语句自行抛出,当直接利用throw语句抛出异常时,一定要对抛出的异常进行捕获。语法格式:throw new 异常类类型(信息)其中异常类类型为系统异常类名或用户自定义的异常类名。toString方法可返回上面的信息内容 例:直接抛出异常以处理分母输入为0的情况public class ExceptionDemo static int num;public static void main(String args)try num=Integer.pa
6、rseInt(args0);if(num=0)throw new ArithmeticException(你应该输入非0整数值!);System.out.println(100整除+num+=+100/num);catch(ArrayIndexOutOfBoundsException e)System.out.println(你还没有输入呢,请输入整数值!);catch(NumberFormatException e)System.out.println(你输入的是小数或字符,请输入整数值!);catch(ArithmeticException e)System.out.println(错误类
7、型:+e.toString();(b)利用throws关键字间接抛出异常在方法的声明处,利用throws关键字抛出异常。语法格式如下:方法名()throws 异常类异常类1,异常类2,例:ExceptionDemo类中的DivMethod方法计算100/num的值,并在该方法中抛出异常。MyDemo类调用DivMethod方法时,捕获其抛出的异常。class ExceptionDemo public static void DivMethod(int num)throws NumberFormatException,ArithmeticException,ArrayIndexOutOfBoun
8、dsException System.out.println(100整除+num+=+100/num);public class MyDemo public static void main(String args)try int n;n=Integer.parseInt(args0);ExceptionDemo.DivMethod(n);catch(ArrayIndexOutOfBoundsException e)System.out.println(你还没有输入呢,请输入整数值!);catch(NumberFormatException e)System.out.println(你输入的是
9、小数或字符,请输入整数值!);catch(ArithmeticException e)System.out.println(你输入的是0,请输入非0整数值!);三、自定义异常语法结构:语法结构:class 自定义异常类名自定义异常类名 extends Exception(Throwable)public 自定义异常类名自定义异常类名()public 自定义异常类名自定义异常类名(String str)super(str);用throw语句来抛出自定义的异常类,例:要求在命令行后输入学生成绩,成绩值在0,100之间。当输入的数值不在0,100之间时,直接抛出自定义的异常类InputExcepti
10、on类。同时要求捕获所有可能出现的异常。自定义的异常:class InputException extends Exception public InputException()public InputException(String str)super(str);public class Scores public static void main(String args)try float score;System.out.println(请输入成绩值!)score=Math.abs(Float.parseFloat(args0);if(score=100)throw new InputE
11、xception();System.out.println(你输入的成绩值:+score);catch(ArrayIndexOutOfBoundsException e)System.out.println(你还没有输入呢,请输入成绩值!);catch(NumberFormatException e)System.out.println(你输入的是字符,请输入数值!);catch(InputException e)System.out.println(你输入的数值不在指定范围内,请输入0,100之间的值!);输入输出数据的输入输出是程序的主要任务。进行程序设计时,有时需将结果保存到指定的文件、
12、数据库中等等。Java语言的输入输出数据是以流(Stream)的形式出现的。流分为输入流(Input Stream)和输出流(Output Stream)输入流和输出流的流向 1 1.Java I/OJava I/O系统系统 Java程序的输入和输出是由Java I/O系统负责处理的I/O类库位于java.io包中 2.几个重要的居于几个重要的居于java.io包中类层次顶部的流类包中类层次顶部的流类 类 说明 File 支持文件与目录操作的类 InputStream 字节输入流类 OutputStream 字节输出流类 Reader 字符输入流类 Writer 字符输出流类 RandomAc
13、cessFile 随机访问文件类3.文件管理类(File)Java中的File类是专门对目录和文件进行管理的类对目录的管理包括建立目录、删除目录、重命名目录以及建立与删除临时目录;对文件的管理包括建立空文件、删除文件、重命名文件、获取或修改文件的各种属性以及建立与删除临时文件。Java中的File类是不能读写文件的。File类的构造方法 File(String pathname)该构造方法中的参数pathname,指定所创建的File类对象对应的目录或文件 File myfile=new File(:jdkmyjava);File myfile=new File(“c:jdkmyjavaMyJ
14、ava.class);创建的对象myfile表示:jdkmyjava目录中的文件MyJava.class。(2)File(File parent,String child);该构造方法用一个已经创建的对应于某个目录的File类对象,作为路径参数来创建File类对象,如:File MyFile=new File(:jdkmyjava);File MyFile1=new File(MyFile,MyJava.java);File类的成员方法(p142表5-2)public String getName()返回目录或文件名public String getPath()返回目录或文件所在路径publi
15、c String getAbsolutePath()以字符串形式返回目录或文件的绝对路径public String getParent()以字符串形式返回目录或文件的父目录例例:请显示c盘中的所有内容import java.io.*;class ListFileName public static void main(Stringargs)Stringallname;File myfile1=new File(c:);if(myfile1.isDirectory()allname=myfile1.list();if(allname.length=0)System.out.println(“该目
16、录下没有任何内容!);else System.out.println(“该目录下的内容有:);for(int i=0;iallname.length;i+)System.out.println(allnamei);else System.out.println(不存在该目录);例:例:创建文件和目录import java.io.*;class CMFileObject public static void main(Stringargs)try File myfile1=new File(c:myjdk);File myfile2=new File(myfile1,YouJava.java);
17、System.out.println(两个对象创建完毕!);if(myfile1.exists()System.out.println(myfile1+存在!);else myfile1.mkdir();System.out.println(myfile1+已创建!);if(myfile2.exists()System.out.println(myfile2+存在!);else System.out.println(myfile2+文件不存在,请创建!);myfile2.createNewFile();System.out.println(myfile2+文件已创建!);catch(IOExc
18、eption e)例例显示文件的一些属性import java.io.*;import java.util.Date;class ShowFileAttri public static void main(Stringargs)File f=new File(“myfile.txt”)if(f.exists()System.out.println(文件tt属性);System.out.println(名称:tt+f.getName();System.out.println(可读性:tt+f.canRead();System.out.println(可写性:tt+f.canWrite();Sys
19、tem.out.println(隐藏性:tt+f.isHidden();System.out.println(长度:tt+f.length();Date date=new Date(f.lastModified();System.out.println(最后修改日期:t+date.toString();elseSystem.out.println(f.getName()+“不存在!”);练习(P179):设计一个文件管理器。要求从命令行输入文件的路径(第一个参数)和文件名(第二个参数),从而实现显示文件、删除文件等基本操作。要求捕获所有的异常。4、Java中对文件进行读写的类 字节流类字符流类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 异常处理与输入输出 异常 处理 输入输出
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内