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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

08 第八章 异常.docx

1、08 第八章 异常第八章:异常学习目标 异常的概念 使用try,catch,和finally指令 异常的分类 公共异常 自定义异常 方法覆盖和异常什么是异常在Java编程语言中,异常类定义程序中可能遇到的轻微的错误条件。你可以写代码来处理异常,并继续执行程序,而不需要让程序中止。在程序执行中,任何中断正常程序流程的条件都是异常。例如,发生下列情况时,会出现异常: 想打开的文件不存在 网络连接中断 操作数超出预定范围 非常感兴趣地正在装载的类文件丢失在Java编程语言中,错误类定义被认为是不能恢复的严重错误条件。在大多数情况下,当遇到这样的错误时,建议让程序中断。Java编程语言实现C+异常来帮

2、助建立弹性代码。在程序中发生错误时,发现错误的方法能抛出一个异常到其调用程序,发出已经发生问题的信号。然后,调用方法捕获抛出的异常,在可能时,再恢复回来。这个方案给程序员一个写处理程序的选择,来处理异常。通过浏览API,可以决定方法抛出的是什么样的异常。异常的分类在Java编程语言中,异常有三种分类。java.lang.Throwable类充当所有对象的父类,可以使用异常处理机制将这些对象抛出并捕获。在Throwable类中定义方法来检索与异常相关的错误信息,并打印显示异常发生的栈跟踪信息。它有Error和Exception两个基本子类。Throwable类不能使用,而使用子类异常中的一个来描

3、述任何特殊异常。每个异常的目的描述如图:Error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。RuntimeException表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。比如,如果数组索引扩展不超出数组界限,那么,ArrayIndexOutOfBoundsException异常从不会抛出。比如,这也适用于取消引用一个空值对象变量。因为一个正确设计和实现的程序从不出现这种异常,通常对它不做处理。这会导致一个运行时信息,应确保能采取措施更正问题,而不是将它藏到谁也不注意的地方。其它异常表示一种运行时的困难,它通常

4、由环境效果引起,可以进行处理。例子包括文件未找到或无效URL异常(用户打了一个错误的URL),如果用户误打了什么东西,两者都容易出现。这两者都可能因为用户错误而出现,这就鼓励程序员去处理它们。公共异常Java编程语言提供几种预定义的异常。下面是可能遇到的更具共同性的异常中的几种: ArithmeticException:整数被0除,运算得出的结果。 int i = 12 / 0; NullPointerException:当对象没被实例化时,访问对象的属性或方法的尝试: Date d = null; System.out.println(d.toString(); NegativeArrayS

5、izeException:创建带负维数大小的数组的尝试。 ArrayIndexoutofBoundsException:访问超过数组大小范围的一个元素的尝试。 SecurityException:典型地被抛出到浏览器中,SecurityManager类将抛出applets的一个异常,该异常企图做下述工作(除非明显地得到允许): 访问一个本地文件打开主机的一个socket,这个主机与服务于applet的主机不是同一个。 在运行时环境中执行另一个程序异常的处理机制一般来说,异常的处理机制有以下三种:try-catch-finally 主动异常处理throws 消极异常处理throw 引入异常实例分

6、析例1问题的描述: 写一个常见的异常解决方案:请看下例:public class TestException public static void main(String args) int i = 0; String ss = Hello world!, 您好,世界!, HELLO WORLD! ; for (; i 6; i+) System.out.println(ssi); 运行的结果为如图。要处理异常,将能够抛出异常的代码放入try块中,然后创建相应的catch块的列表,每个可能被抛出异常都有一个。如果生成的异常与catch中提到的相匹配,那么catch条件的块语句就被执行。在try

7、块之后,可能有许多catch块,每一个都处理不同的异常。请看下例:class TestException2 public static void main(String args) int i = 0; String ss = Hello world!, 您好,世界!, HELLO WORLD! ; for (; i 5; i+) try System.out.println(第 + (i + 1) + 次循环:); System.out.println(ssi); catch (Exception e) System.out.println(数组越界); finally System.out

8、.println(finally execute); 运行的结果如图总结:从上例可以看出:不管出现不出现异常,finally语句块都会执行。在try语句块里除了System.exit(int)语句外,finally语句块必须执行。Throws则是自己不处理异常,而交给上级处理,俗称“异常上抛”,比如:public static void main(String args) throws RuntimeException这样,一旦在代码里出现RuntimeException,在本类里不做任何处理动作,而是交由上次程序或者虚拟机去处理。自定义异常用户定义异常是通过扩展Exception类来创建的。

9、这种异常类可以包含一个普通类所包含的任何东西。下面就是一个用户定义异常类例子,它包含一个构造函数、几个变量以及方法请看下例: class TestMyException public static void main(String args) ABC abc = new ABD();/ ABD 是 ABC的子类 try abc.a(5); catch (EA e) e.test(); 创建自己的运行时异常,如果改成Exception,就是创建编译时的异常了,编译的时候就应该对异常处理。class EA extends RuntimeException String s; public EA(S

10、tring s) this.s = s; public EA() public void test() System.out.println(s); ;class EA1 extends EA / 创建自己的异常的子异常 public EA1(String s) super(s); ;class EA2 extends EA / 创建自己的异常的子异常 public EA2(String s) super(s); ;class ABC public void a(int i) if (i 0) System.out.println(normal); else throw new EA(no n

11、ormal); ;class ABD extends ABC public void a(int i) if (i 0); ;运行的结果为: 参数 0方法覆盖和异常方法覆盖要注意两点: 访问权限不能比父类的弱 抛出的异常不能比父类的多。(注意多并不是数量上的多,而是父类方法抛出的异常必须包含子类覆盖方法抛出的异常)请看下例:class TestMyException2 public static void main(String args) ABC abc = new ABD(); try abc.a(5); catch (EA e) e.test(); class EA extends Ex

12、ception / 创建自己的编译时异常 String s; public EA(String s) this.s = s; public EA() public void test() System.out.println(s); ;class EA1 extends EA / 创建自己的异常的子异常 public EA1(String s) super(s); ;class EA2 extends EA / 创建自己的异常的子异常 public EA2(String s) super(s); ;class ABC public void a(int i) throws EA if (i 0

13、) System.out.println(normal); else throw new EA(no normal); ;class ABD extends ABC public void a(int i) throws EA1, EA2 / 虽然抛出的异常比父类多,但是都是父类异常的子类 if (i 0); ;运行结果为: 参数 0内容总结 了解java异常的处理机制 掌握java异常的分类 使用try,catch,finnaly对异常进行处理 创建并使用自己定义异常独立实践 给客户建立一个帐户,当取的钱大于余额的话,就要抛出异常-显示余额不足的信息 编写User类,其年龄必须在18-60,否则产生异常。

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

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