版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第六章第六章 异常处理(异常处理(Exceptions) Exceptions的概念的概念异常异常处理处理自定义自定义异常异常2public class testpublic static void main(String args )int i=0;String greetings = Hello World!,Hello!, HELLO WORLD!;while ( i4)System.out.println(greetingsi);i+; Hello World!Hello!HELLO WORLD!Java.lang.ArrayIndexOutOfBoundsExceptionat H
2、elloWorld.main(HelloWorld.java:7)3Exception 的概念的概念 Exception 是在程序运行时打断正常程序流程的是在程序运行时打断正常程序流程的异常的情况异常的情况试图打开的文件不存在试图打开的文件不存在网络链接中断网络链接中断操作符越界操作符越界要加载类文件不存在要加载类文件不存在Java中定义了各种中定义了各种异常异常 Error 很难恢复的严重错误,一般不由程序处理。很难恢复的严重错误,一般不由程序处理。4Java中定义了各种中定义了各种异常异常。Java.lang.Throwable是这些类的父类。是这些类的父类。Java中定义的异常中定义的异
3、常5异常类ObjectThrowableErrorExceptionAWTExceptionIOExceptionRuntimeExceptionJava中中哪些异常需要是强制捕获的?哪些异常需要是强制捕获的?非RuntimeException异常类或者其子类的的异常都要声明捕捉。 6异常处理zJava程序在执行过程中如出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。z当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。z如果Java运行时系统找不到可以捕
4、获异常的方法,则运行时系统将终止,相应的Java程序也将退出。ztry/catch/finally语句。7异常处理异常处理扑获并处理异常扑获并处理异常将方法中产生的异常抛出将方法中产生的异常抛出8扑获与处理异常扑获与处理异常Try 语句块语句块 catch 语句块语句块 finally 语句块语句块9TryTry语句块语句块一般形式:一般形式:try Java statements /一条或多条可能产生例外的一条或多条可能产生例外的java语句。语句。 try 语句后必须跟随至少一个语句后必须跟随至少一个catch或或finally语句块。语句块。10CatchCatch语句块语句块 Catc
5、h语句块提供错误处理。语句块提供错误处理。一般格式:一般格式:catch (SomeThrowableObject variableName) Java statements SomeThrowableObject:能够被处理的异常类名,必须是:能够被处理的异常类名,必须是throwable类的子类类的子类 variableName: 是异常处理程序中能够引用的代表被扑获异常是异常处理程序中能够引用的代表被扑获异常的变量名称。的变量名称。 Java statements: 当扑获到异常时执行的当扑获到异常时执行的java语句。语句。11FinallyFinally语句块语句块将先前方法的状态清
6、除,并可以将控制转将先前方法的状态清除,并可以将控制转移到程序的其他地方。移到程序的其他地方。finally 语句块无论是否发生异常都要执行语句块无论是否发生异常都要执行 除非程序使用除非程序使用System.exit(-1)方法异常方法异常退出退出12例外处理例外处理Try ,catch和和finally 语句语句1 Try2 / code that might throw a partcular exception3 catch(MyExceptionType e)4 / code to excute if a MyExceptionType exception is thrown5 ca
7、tch (Exception e)6 / code to execute if a general Exception exception is thrown7 finally 13扑获与处理扑获与处理异常异常示例示例public static void main(String args)int i = 0 ;String greetings=Hello World!,Hello!,HELLO!;while (i10。22自定义异常23import java.util.Scanner; class myException extends Exception myException() supe
8、r(出现异常出现异常:输入数超出范围输入数超出范围); public class test public static void main(String args) Scanner sc = new Scanner(System.in ); int sum=0;System.out.print(请输入要计算的阶乘数:); int n=sc.nextInt();try sum=jiecheng(n); catch(myException e) System.out.println(e); System.exit(0); System.out.print(结果是:+sum);static int jiecheng(int n) throws myException int m=1; if(n10) throw new myException(); for(int i=1;i Run Configurations - Arguments页签 - VM arguments文本框中加上断言开启的标志:-enableassertions 或者-ea 就可以了zpublic class Assert
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论