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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

异常的捕获及处理Word文件下载.docx

1、 在程序之中异常是导致程序中断执行的一种指令流,一旦产生了异常之后,程序将立刻终止执行,在最早的时候,如果要想避免异常,则需要编写大量的ifelse语句进行更加合理的判断,但是Java中引入了异常处理机制之后,对于此类问题就变的相当容易了,但是,先来观察一下异常的产生效果:public class TestDemo public static void main(String args) System.out.println(= 计算开始 =) ; int temp = 10 / 3 ; / 进行除法计算计算结果: + temp) ;= 计算结束 = 程序输出:= 计算开始 =3= 计算结束

2、= 现在的程序之中没有发生任何的意外情况,所以最终的结果是正常的,但是下面修改一下程序。 int temp = 10 / 0 ;输出结果:Exception in thread main java.lang.ArithmeticException: / by zero at TestDemo.main(TestDemo.java:4) 程序在计算处出现了异常,所以出现异常之后的代码不再执行了,即:程序被中断了。3.2、异常处理的格式(重点) 如果异常出现之后没有进行合理的操作,则程序将会中断执行,则这个时候就可以通过如下的格式进行异常的处理,这样保证在程序出现异常的时候也不会中断程序。try

3、有可能出现异常的语句 catch (异常类 异常类对象) 异常的处理 catch (异常类 异常类对象) . finally 异常处理的出口范例:在程序中使用异常处理 try int temp = 10 / 0 ; System.out.println( catch(ArithmeticException e) System.out.println(e) ; 加入异常处理之后,程序可以正常的执行完毕, int temp = 10 / 2 ; e.printStackTrace() ; / 打印异常信息最全 不管在何处,只要异常产生了,则异常产生之后的语句都不再执行,而且一旦有异常之后,肯定要跑

4、到相应的catch语句之中执行,如果现在没有异常,则程序可以正常的执行完毕。 在异常的处理语句之中,也可以加上finally,这样不管是否出现异常,则最终都会执行此操作。 finally都会执行。 而且一个try语句之后可以同时捕获多种类型的异常。 int x = Integer.parseInt(args0) ; int y = Integer.parseInt(args1) ; int temp = x / y ; catch(ArrayIndexOutOfBoundsException e) catch(NumberFormatException e) 本程序有如下几种异常: 如果程序没

5、有输入参数,则出现:ArrayIndexOutOfBoundsException 如果输入的参数不是数字,则出现:NumberFormatException 这个程序之中现在的确处理了多个异常,但是问题也非常的明显,你如何知道一个操作会有多少种异常呢?3.3、异常的组织及处理结构(重点) 之前已经大概的清楚了异常的产生问题及处理的格式,但是实际上在java的异常之中,包含的范围有两点:程序中的异常、另外一个表示的是系统的错误,而这两点有时候为了省事,才直接将其都统一称为异常,而Java之中的类的继承结构里面也可以发现Throwable类,里面分为两个子类: Exception:表示程序中出现的

6、代码异常,由开发人员进行处理; Error:表示的是JVM的错误,程序开发人员无法处理。 虽然Throwable表示的范围更加的广泛,但是在实际的工作之中却很少有地方直接使用Throwable进行异常的表示,因为其表示的范围太过于宽广,所以习惯在程序中使用Exception表示所处理的异常。 但是,要想充分的发挥出以上的继承关系,还需要进一步的了解异常的处理流程。 对于java程序来讲,如果程序中一旦出现了异常,则会由JVM自动的产生一个Exception子类的对象,之后就好比方法的参数接收那样,catch语句中的异常类型要和抛出的异常对象进行比较,如果比较成功了,则认为当前抛出的这个异常满足

7、与catch语句中的参数的类型,则表示可以使用此catch进行处理,而如果没有匹配的catch呢,则程序会认为此异常无法处理则交给JVM做默认的处理方式(中断执行)。 而最后不管是否产生了异常都会以finally的代码作为程序的出口。 既然现在已经掌握了此过程,那么对于异常的接收就可以进一步了,因为按照面向对象的多态性来讲,所有的子类的对象都可以使用父类接收,所以在异常的处理之中,如果为了省事,可以直接Exception接收所有产生的异常类的实例化对象。 但是这样一来有一个注意点,就是捕获范围广的异常一定要放在捕获范围小的异常之后。 catch(Exception e) 以上这种简便的做法只适

8、合于异常情况处理要求简单的条件下,如果现在开发要求中需要将每个异常分别处理的话,则就必须采用多个catch语句的形式了。3.4、throws关键字(重点) 在异常的处理之中,throws关键字主要是用于方法的声明上的,一旦在方法上使用了throws关键字之后,则表示此方法出现的异常不是由此方法自己处理,而是交给被调用处完成。class MyMath public int div(int x,int y) throws Exception return x / y ; try System.out.println(new MyMath().div(10,0) ; 方法本身不再进行任何的异常处理,

9、而是要将异常交给被调用处完成,但是此时调用处由于不确定方法中最终是否会产生异常,所以必须按照有可能产生异常的方式来进行处理。 当然,主方法由于本身也是方法,所以也可以继续使用throws。 public static void main(String args) throws Exception System.out.println(new MyMath().div(10,0) ; 如果程序中出现了异常,则表示将交给JVM继续进行异常的处理。3.5、throw关键字(重点) 之前讲解过,如果程序中一旦产生了异常之后,将自动生成一个异常类的实例化对象,但是在java之中也可以自己手工的抛出一个异

10、常,就使用throw关键字即可。 try throw new Exception(自己抛着玩的。 catch (Exception e)3.6、异常处理的标准格式(核心重点) try.catchfinally、throw、throws实际上就将构成异常处理的标准格式。要求:div()方法在进行计算之前和之后必须有信息输出,而且一旦发生了异常之后应该交给被调用处处理。= 计算开始 = int temp = 0 ; temp = x / y ; throw e ; / 把异常向上抛= 计算结束 = return temp ;3.7、RuntimeException(重点) 将字符串变为int型数据

11、所依靠的方法:public static int parseInt(String s) throws NumberFormatException int x = Integer.parseInt(123 System.out.println(x) ; 以上的parseInt()方法上明明使用了throws关键字,但是发现在调用的时候却可以不使用trycatch进行处理,这是为什么呢? 观察NumberFormatException类的继承关系:java.lang.Objectjava.lang.Throwablejava.lang.Exceptionjava.lang.RuntimeExcep

12、tionjava.lang.IllegalArgumentExceptionjava.lang.NumberFormatException NumberFormatException是RuntimeException类的子类,而RuntimeException类的子类的异常在开发之中如果使用了throws抛出,则可以根据自己的需要任意选择是否使用trycatch处理,如果没有使用trycatch,那么一旦产生了异常之后,则就将由JVM自己进行处理了。面试题:请解释Exception和RuntimeException类的区别? RuntimeException是Exception的子类,表示的是

13、运行时异常; Exception类型的异常如果抛出,则必须进行异常的处理,而RuntimeException类型的异常,可以根据自己的实际情况来决定是否处理,不处理也没有关系。3.8、断言:assert(了解) 断言:很肯定的判断性的语句; 断言是在JDK 1.4之后增加的一个新功能,使用assert关键字表示。 int x = 10 ; assert x=5 ; 如果按照之前的方式执行程序,断言根本就没有任何的问题,因为这个时候没有启用断言检查,而要想启用的话,则直接在java命令执行的时候使用一个“-ea”的参数即可:java -ea TestDemo 现在只是显示除了断言错误,却不知道具

14、体的错误信息,此时要想知道具体的,则可以修改断言的定义格式: assert x=5:x=5 ;3.9、自定义异常类(了解) Java本身已经提供了足够多的异常类的信息,但是在实际的工作开发之中,有可能根据自己的情况希望定义属于用户自己的异常类,这个时候就需要自定义异常类,而这个异常类在定义的时候就需要继承Exception类。class MyException extends Exception public MyException(String msg) super(msg) ; throw new MyException( 但是这种操作一般很少会直接使到,因为java中所提供的异常类已经足够使了,所以,这个就作为一种概念知道了即可,不用费劲琢磨。4、总结1、 各个关键字的使用;2、 RuntimeException和Exception的区别;3、 异常处理的标准格式。5、预习任务 包及访问控制权限、多线程的两种实现形式、同步与死锁的概念。6、作业 复习全部的代码。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2