ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:99.62KB ,
资源ID:12056529      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12056529.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java异常处理机制3精.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java异常处理机制3精.docx

1、java异常处理机制3精java异常处理机制一、什么是java的异常?异常是导致程序中断运行的一种指令流,软件和硬件错误都可能导致异常的产生,用户输入错误,所需要的文件找不到,运行时磁盘空间不够,内存不够,算术运算错误(数的溢出、被零除),数组下标越界模仿一个异常:package com.destiny;public class Exception public static void main(String args System.out.println(*开始计算*;int i = 10;int j = 0; int m = i/j;/出现异常 /程序中断,以下部份没有执行System.o

2、ut.println(10除以0的结果是:+m;System.out.println(*完成计算*;结果:*开始计算*Exception in thread main java.lang.ArithmeticException: / by zeroat com.destiny.Exception.main(Exception.java:8二、异常处理方式异常出现后,如果没有进行合理的处理,则会让应用程序中断运行。Try放置可能会出现异常的语句catch(异常类 异常类的对象处理异常的语句catch(异常类 异常类的对象可以有多个,是因为try中的语句可能会抛出多个不同的异常,括号中的异常类有很

3、多,不同的类就代表不同的异常,如果异常出现了,而catch所指定的异常类不属于产生的异常,那么该异常将不会被捕捉到。finally可选的语句块,不管是否出现了异常,该语句块的语句都要执行,比如关闭数据库的连接等例子:package com.destiny;public class Exception00 public static void main(String args System.out.println(*开始计算*;int m=0;try int i = 10;int j = 0; m = i/j; catch (ArithmeticException e System.out.pr

4、intln(异常被捕捉;e.printStackTrace(;finallySystem.out.println(finally中的语句被执行;结果:*开始计算*java.lang.ArithmeticException: / by zero异常被捕捉at com.destiny.Exception00.main(Exception00.java:10finally中的语句被执行注意:以上代码如果catch块声明成 catch (NumberFormatException e ,则异常将不会被捕捉,也不会被处理,但finally块中的代码也会被执行。package com.destiny;pu

5、blic class Exception00 public static void main(String args System.out.println(*开始计算*;int m=0;try int i = 10;int j = 0; m = i/j; catch (NumberFormatException e System.out.println(异常被捕捉;e.printStackTrace(;finallySystem.out.println(finally中的语句被执行;结果:*开始计算*finally中的语句被执行Exception in thread main java.lan

6、g.ArithmeticException: / by zeroat com.destiny.Exception00.main(Exception00.java:10三、异常处理机制在整个的java异常处理中,实际上也是按照面向对象的方式进行处理的,一旦产生异常,则首先会产生一个异常类的实例化对象。我们可以在try语句中对此异常进行捕捉。产生的异常对象与catch中的各个异常类型进行匹配,如果匹配成功,则执行catch块中的语句。如果有finally语句,则最后执行finally中的语句。例子:public class Test public static void main(String a

7、rgsint temp;try int i=13;int j=0; temp = i/j;System.out.println(i/j=+temp; catch (RuntimeException e e.printStackTrace(;System.out.println(-异常处理结束-; System.out.println(-程序最后的语句-;结果:java.lang.ArithmeticException: / by zeroat Test.main(Test.java:8-异常处理结束-程序最后的语句-public class Test public static void ma

8、in(String argsint temp;try int i=13;int j=0; temp = i/j;System.out.println(i/j=+temp; catch (RuntimeException e e.printStackTrace(;finallySystem.out.println(-异常处理结束-; System.out.println(-程序最后的语句-;结果:java.lang.ArithmeticException: / by zeroat Test.main(Test.java:8-异常处理结束-程序最后的语句-四、java语言中错误和异常类图解:Thr

9、owable类是所有java语言中所有错误或异常的超类,所有异常类型都是Throwable的子类.Exception类是用户程序可能捕捉的异常类的超类,也是用来创建用户自定义异常类型的超类。Error用于指示合理的应用程序不应该试图捕获的严重问题,它一般是由于硬件问题产生的。Exception又可分为两类:RuntimeException:运行时异常,它表示程序正常运行的话就不会产生的异常。这种异常不用在程序中把他们列出来,运行时有问题,会自动被JVM抛出。比如空指针异常,数组越界。非运行时异常:例如,FileNotFoundException异常,java编译器要求在程序中必须进行处理,抛出

10、这类异常除外。例子:以下为非运行时异常的例子,此种异常在写代码的时候,IDE就会提示要求必须进行捕捉。import java.io.*;import java.io.FileNotFoundException;import java.util.*; public class ForOne public static void main(String args File file = new File(d:/temp/gundam.txt;try FileInputStream fis = new FileInputStream(file; catch (FileNotFoundExceptio

11、n e e.printStackTrace(; 结果:java.io.FileNotFoundException: d:tempgundam.txt (系统找不到指定的文件。at java.io.FileInputStream.open(Native Methodat java.io.FileInputStream. ( FileInputStream.java:106at ForOne.main(ForOne.java:9运行时的异常在编译时是发现不了的,必须由程序员自己来判断。 提示:所有需处理的异常,我们都可以用Exception类来进行捕捉。五、通过方法抛出异常如果我们不打算处理方法中

12、的异常,可以用此语句把产生的异常抛出,交给调用该方法的方法去处理此种方式可以把方法中的语句可能产生的异常进行抛出,可以抛给方法的调用者。如果在方法声明处使用了throws声明异常,则该方法中产生的异常并不必再捕捉。方法名称(参数列表) throws 异常类型列表import java.io.*;import java.util.*; public class ForOne public static void main(String args throws FileNotFoundException/在main上使用throws将会把异常抛出给jvm,这种方式是不允许的,jvm也不知道该如何处

13、理这种异常File file = new File(d:/temp/gundam.txt;FileInputStream fis = new FileInputStream(file;修改后:import java.io.*;import java.util.*; public class ForOne public static void main(String argstry justice(; catch (FileNotFoundException e e.printStackTrace(;static void justice( throws FileNotFoundExceptio

14、nFile file = new File(d:/temp/gundam.txt;FileInputStream fis = new FileInputStream(file;例子:package com.destiny;public class Exception public static void main(String args int r = cal(10,0; static int cal(int i,int j int m=0; m = i/j;return m; 和开始一样异常没有被捕捉,结果:Exception in thread main java.lang.Arithme

15、ticException: / by zeroat com.destiny.Exception.cal(Exception.java:9at com.destiny.Exception.main(Exception.java:5将异常抛给调用它的方法:package com.destiny;public class Exception01 public static void main(String args int r = cal(10,0; static int cal(int i,int jthrows Exception/向方法的调用者抛出异常int m=0; m = i/j;retu

16、rn m; cal下面会有报错,抛出去后谁调用这个方法谁就要处理这个异常package com.destiny;public class Exception01 public static void main(String args try /捕捉cal方法抛出的异常int r = cal(10,0; catch (Exception e System.out.println(异常被捕捉;e.printStackTrace(; static int cal(int i,int jthrows Exception/向方法的调用者抛出异常int m=0; m = i/j;System.out.pr

17、intln(异常已出现;/看看异常是否会被捕捉return m; 结果:异常被捕捉java.lang.ArithmeticException: / by zeroat com.destiny.Exception01.cal(Exception01.java:14at com.destiny.Exception01.main(Exception01.java:6r没有赋值,即return没执行,但程序也没有中断使用这种方法捕捉到程序产生异常后,则后面的代码不再执行六、通过语句抛出异常throw ThrowableObject;ThrowableObject必须是Throwable或者其子类的对象

18、。自定义的异常也就是用户自己定义的异常,一般用来向调用发送一些信息。该语句用在方法体内的,用来抛出一个异常,程序在遇到此语句时将会中止,后面的语句执行不到,然后在上层调用该方法的方法中进行捕捉。此种方式往往用于抛出用户自定义的异常。import java.io.*;public class ForTwo public static void main(String argsjustice(;static void justice(System.out.println(方法开始执行!;try throw new Exception(此异常为用户自定义的异常!; catch (Exception

19、e e.printStackTrace(;System.out.println(方法结束!;结果:方法开始执行!java.lang.Exception: 此异常为用户自定义的异常!at ForTwo.justice(ForTwo.java:9at ForTwo.main(ForTwo.java:4方法结束!package com.destiny;public class MyException extends Exception public String getMessage(/重写方法 return 哎呀,你是怎么传的参数!; -package com.destiny;public cla

20、ss Exception01 public static void main(String args try /捕捉cal方法抛出的异常int r = cal(10,0; catch (Exception e System.out.println(e.getMessage(; static int cal(int i,int jthrows Exception/向方法的调用者抛出异常int m=0; if(j=0throw new MyException(; m = i/j;System.out.println(异常已出现;/看看异常是否会被捕捉return m; 结果:哎呀,你是怎么传的参数!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1