欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    JAVA程序员定制课程c08.ppt

    • 资源ID:82777227       资源大小:151.50KB        全文页数:31页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JAVA程序员定制课程c08.ppt

    第八章JavaJava异常和断言异常和断言本课内容Java异常的概念和处理机制Java异常的分类异常的捕获、处理和抛出使用用户自定义异常断言2Java异常Java程序运行过程中所发生的异常事件可分为两类:错误(Error):JVM系统内部错误、资源耗尽等严重情况违例(Exception):其它因编程错误或偶然的外在因素导致的一般性问题,例如:对负数开平方根空指针访问试图读取不存在的文件网络连接中断3Java异常举例(1)public class Test12_1 public static void main(String args)String friends=lisa,bily,kessy;for(int i=0;i5;i+)System.out.println(friendsi);System.out.println(nthis is the end);4Java异常举例(2)程序Test12_1运行结果:java Test12_1lisabilykessyException in thread main java.lang.ArrayIndexOutOfBoundsException at Test12_1.main(Test12_1.java:5)Press any key to continue.5Java异常类层次6常见异常RuntimeException 错误的类型转换数组下标越界空指针访问IOExeption从一个不存在的文件中读取数据越过文件结尾继续读取连接一个不存在的URL7异常处理机制Java程序的执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。程序员通常只能处理违例(Exception),而对错误(Error)无能为力8异常处理举例(1)public class Test12_2 public static void main(String args)String friends=lisa,bily,kessy;try for(int i=0;i5;i+)System.out.println(friendsi);catch(java.lang.ArrayIndexOutOfBoundsException e)System.out.println(index err);System.out.println(nthis is the end);9异常处理举例(2)程序Test12_2运行结果:java Test12_2lisabilykessyindex errthis is the endPress any key to continue.10捕获异常(1)捕获异常是通过try-catch-finally语句实现的。try./可能产生异常异常的代码catch(ExceptionName1 e)./当产生ExceptionName1型异常异常时的处置措施catch(ExceptionName2 e)./当产生ExceptionName2型异常异常时的处置措施 finally./无条件执行的语句 11捕获异常(2)try 捕获异异常常的第一步是用try语句块选定捕获异异常常的范围。catch 在catch语句块中是对异异常常对象进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异异常常对象。与其它对象一样,可以访问一个异常异常对象的成员变量或调用它的方法。getMessage()方法,用来得到有关异常事件的信息printStackTrace()用来跟踪异常事件发生时执行堆栈的内容。12捕获异常(3)finally捕获异常异常的最后一步是通过finally语句为异常异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。不论在try代码块中是否发生了异常事件,finally块中的语句都会被执行。finally语句是任选的13捕获异常(4)try startFaucet();waterLawn();catch(BrokenPipeException e)logProblem();finally stopFaucet();14IOException异常处理举例(1)import java.io.*;public class Test12_3 public static void main(String args)FileInputStream in=new FileInputStream(myfile.txt);int b;b=in.read();while(b!=-1)System.out.print(char)b);b=in.read();in.close();15IOException异常处理举例(2)程序Test12_3编译结果:E:exjavac Test12_3.javaE:exTest12_3.java:4:未报告的异常 java.io.FileNotFoundException;必须被捕获或被声明抛出FileInputStream in=new FileInputStream(myfile.txt);E:exTest12_3.java:6:未报告的异常 java.io.IOException;必须被捕获或被声明抛出b=in.read();E:exTest12_3.java:9:未报告的异常 java.io.IOException;必须被捕获或被声明抛出 b=in.read();E:exTest12_3.java:11:未报告的异常 java.io.IOException;必须被捕获或被声明抛出 in.close();4 个错误16IOException异常处理举例(3)import java.io.*;public class Test12_4 public static void main(String args)tryFileInputStream in=new FileInputStream(myfile.txt);int b;b=in.read();while(b!=-1)System.out.print(char)b);b=in.read();in.close();catch(IOException e)System.out.println(e);finally System.out.println(Its ok!);17EX1 捕获和处理异常编译、运行应用程序Test12_3.java/Test12_4,体会java语言中异常异常的捕捉和处理机制。相关知识:FileInputStream类的成员方法read()的功能是每次从相应的(本地为ASCII码编码格式)文件中读取一个字节,并转换成0255之间的int型整数返回,到达文件末尾时则返回-1。18声明抛弃异常声明抛弃异常异常是Java中处理异常异常的第二种方式如果一个方法(中的语句执行时)可能生成某种异异常常,但是并不能确定如何处理这种异异常常,则此方法应声明抛弃异异常常,表明该方法将不对这些异异常常进行处理,而由该方法的调用者负责处理声明抛弃举例:public void readFile(String file)throws IOException/读文件的操作可能产生IOException类型的异常异常FileInputStream fis=new FileInputStream(file);.19声明抛弃异常举例import java.io.*;public class Test12_5public static void main(String args)Test12_5 t=new Test12_5();try t.readFile();catch(IOException e)System.out.println(e);public void readFile()throws IOException FileInputStream in=new FileInputStream(myfile.txt);int b;b=in.read();while(b!=-1)System.out.print(char)b);b=in.read();in.close();20重写方法声明抛弃异常原则重写方法不能抛出比被重写方法范围更大的异常异常类型 public class A public void methodA()throws IOException public class B1 extends TestA public void methodA()throws FileNotFoundException public class B2 extends TestA public void methodA()throws Exception 21人工抛出异常Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要人工创建并抛出首先要生成异异常常对象,然后通过throw语句实现抛出操作(提交给Java运行环境)。IOException e=new IOException();throw e;可以抛出的异异常常必须是Throwable或其子类的实例。下面的语句在编译时将会产生语法错误:throw new String(want to throw);22创建用户自定义异常类用户自定义异常异常类MyException,用于描述数据取值范围错误信息:class MyException extends Exception private int idnumber;public MyException(String message,int id)super(message);this.idnumber=id;public int getId()return idnumber;23使用用户自定义异常类public class Test12_6 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.out.print(登记失败,出错种类+e.getId();System.out.print(本次登记操作结束);public static void main(String args)Test12_6 t=new Test12_6();t.manager();24断言v语法:assert assert:25断言推荐的使用方法v断言的文档和验证以及方法中的内部逻辑内在不变式控制流程不变式后置条件和类不变式26断言推荐的使用方法示例(1)v 内在不变式:if(x0)else assert(x=0);27断言推荐的使用方法示例(2)v控制流程不变式:switch(suit)case Suit.CLUBS:break;case.break;default:assert false;break;28断言推荐的使用方法示例(3)public Object pop()int size=this.getElementCount();if(size=0)throw new RuntimeException(“Attempt to pop from empty stack”);/do the work of pop assert(this.getElementCount()=size-1);return value;29编译和运行时断言的开启v编译时:javac source 1.4 myTest.javav运行时:java ea myTest30Ex2 抛异常声明编写应用程序,练习P19页类的定义,体会其中的方法重写时对声明抛出异常方面的限制原则;编写应用程序,改造并测试P22、23页创建和使用用户自定义异常的例子,加深理解;(也可以只分析、体会编程思路。)31

    注意事项

    本文(JAVA程序员定制课程c08.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开