(2.5)-JAVA语言程序设计(第五章 异常)_第1页
(2.5)-JAVA语言程序设计(第五章 异常)_第2页
(2.5)-JAVA语言程序设计(第五章 异常)_第3页
(2.5)-JAVA语言程序设计(第五章 异常)_第4页
(2.5)-JAVA语言程序设计(第五章 异常)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计第五章异常5-1异常1、什么是异常2、异常的处理(

try-catch-finally)3、异常的抛出(throw、throws)4、异常的分类5、自定义异常现实世界中的异常什么是异常?程序中的异常一个简单的除法器举例:从控制台输入两个数字,计算出这两个数字的商。importjava.util.Scanner;publicclassDiv{ publicstaticvoidmain(String[]args){ Scannerreader=newScanner(System.in); System.out.println("请输入两个数:"); inta,b,c; a=reader.nextInt(); b=reader.nextInt(); c=a/b; System.out.println(c); System.out.println("谢谢使用!"); }}正常情况:请输入两个数:100205谢谢使用!不正常情况1:输入:100和ajava.util.InputMismatchException不正常情况2:输入:100和0java.lang.ArithmeticException:/byzero异常是程序在执行时发生的不正常事件,它会打断程序的正常运行。产生异常!程序正常运行程序中断运行异常的概念Java异常处理机制在程序代码执行时出现异常后,会按照预先制定的处理方案对异常进行处理,异常处理完成后,程序会继续运行下去。程序中预先制定的处理方案对异常进行处理产生异常!程序正常运行处理完毕,程序继续运行对异常进行处理异常处理Java异常处理的五虎上将:try、catch、finally、throw、throws5个关键字。在方法中手动抛出异常声明方法抛出异常

tryfinallycatchthrowsthrow有可能会出现异常的代码一定要放到try代码块中不管有没有异常都要执行的代码捕获和处理异常异常处理与抛出的使用形式异常处理的形式:try-catch结构try-catch-finally结构异常抛出publicvoidm1(){

throwexception;}publicvoidm2()throwsException{………}try{………}catch{………..}try{………}catch(…){………..}catch(…){……….}catch(…){……….}try{………}catch{………..}finally{……..}try{………}catch(…){………..}catch(…){……….}catch(…){……….}finally{……..}try-catch块在try-catch块中,try语句块中代码执行时会发生以下3种情况之一:trycatch

try-catch语句块之后的程序代码一、无异常发生try语句块中代码正常执行完毕,没有任何异常,catch语句块的代码不会被执行。try-catch块二、有异常,被捕获trycatchtry-

catch后程序代码try语句块代码执行时产生异常,该异常跟catch中声明的异常类型相符合,try语句块剩余的代码将被忽略,catch语句块的代码将被执行。try-catch后续代码正常执行。异常引发异常类型相符合进入catch多重catch块一段代码可能会产生多个异常系统运行时会依次对每个catch块声明的异常对象进行检查,找到并执行第一个与try语句块抛出的异常类型匹配的catch块代码。其余的catch块将被忽略。

trycatch1try-

catch块之后程序代码异常引发与异常类型1不符合进入catch2catch3catch2与异常类型2符合多重catch块,捕获类型存在父子类关系使用多重catch语句时,异常子类一定要位于异常父类之前

try{………}catch(Exceptionex){

………}catch(InputMismatchExceptionex){

………

}×try-catch块三、有异常,未捕获trycatch异常引发try语句块产生异常,但是抛出的异常并没有在catch语句块中声明,那么这个时候程序会立刻终止。异常类型不匹配try-catch后程序代码程序中断运行,报异常信息,程序非正常结束try-catch-finally块在try-catch块后加入finally块,可以确保:无论是否发生异常异常是否被捕获finally块中的代码总能被执行。try块finally块catch块

无异常发生异常发生try-catch-finally后程序代码异常被捕获异常未被捕获无论异常是否捕获异常的分类Error:指程序无法处理的异常ExceptionRuntimeException(UncheckedException)虚拟机的通常操作可能遇到的异常,是一种常见运行错误CheckedException

(非RuntimeException)定义方法时,声明所有可能会抛出的checkedexception在调用方法时,必须捕获checkedexception,不然就得把它传递下去ThrowableErrorVirtualMachineErrorIOErrorExceptionRuntimeException(UnCheckedException)…………Non_RuntimeException(CheckedException)IOExceptionClassNotFoundException…..异常的抛出throwthrowexceptionObject——通过throw语句手动显式的抛出一个异常

必须写在方法中,执行throw语句的地方就是一个异常抛出点,和由JRE自动形成的异常抛出点没有任何差别throws声明将抛出何种类型的异常publicvoidmethodName(参数列表)throwsException类型列表{//thrownewException();

//或者调用能抛出异常的方法}throw和throws使用举例5-4自定义异常与异常链1、自定义异常2、异常链自定义异常根据JAVA标准类库中的异常类,定义子类形式:publicclass自定义异常名称extends标准类库异常类型异常链异常链:把捕获的异常包装

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论