Java程序设计项目教程-项目七 异常处理和多线程.ppt

Java程序设计项目教程-项目七 异常处理和多线程.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
项目7 异常处理和多线程 7.1 任务一 掌握Java中对异常的处理 7.1.1 异常类和异常处理机制 1. 异常类 Java语言采用面向对象的方法来处理异常,每个异常都是由异常类产生的对象,所有的异常类(java.lang.Exception)均继承自java.lang.Object中的java.lang.Throwable类。它提供了一些方法让我们能够了解异常产生的原因和一些相关的信息。Java中的异常类具有层次组织,Throwable类是Object类的直接子类,Throwable类又有Error类(错误类)和Exception类(异常类)两个直接子类,这两个子类又有许多各自的子类,如图7-1 。 7.1.2 程序中异常处理方法 1. 捕获异常 在Java中用try-catch- finally结构来捕获和处理异常,其语法结构为: try {可能产生异常的程序代码块;} catch(要捕获的异常类型1变量名称1)//要处理的第一种异常 {处理捕获到的异常的代码块;} catch(要捕获的异常类型2变量名称2)//要处理的第二种异常 {处理捕获到的异常的代码块;} …… finally //最终处理语句 {无论是否抛出异常都要执行的代码;} 说明: try后面的{}用来选定捕获异常的范围,就是我们觉得哪段语句可能会出现异常我们就把这部分语句放到try后面的{}里,如果这一范围内的某条语句发生异常,程序就会跳出try部分,不再继续try块中剩余的语句,根据异常的类型来执行相应的catch语句块,去处理相应的异常。catch语句可以有多个,构成多重catch语句,处理不同类型的异常。如果有一个catch语句指定的异常类型与发生的异常类型相符,那么就会执行这个catch语句,其他的catch语句则会被跳过不被执行。如果没有抛出异常,那么try代码块就会结束,并且会跳过所有catch语句,从最后一个catch后面的第一个语句继续执行。因此,只有在有异常抛出时,才会执行catch语句。catch语句中定义变量的方法与在方法中定义参数相同,只不过这个变量对应的是一个对象实例。不论前面catch语句执不执行finally后面{}中的语句都会执行。 【例7-3】加入异常处理的多异常程序 import javax.swing.JOptionPane; public class ArrayTest2 { static void arraylong() { int inputvalue,i; String input; int array[]; do { input=JOptionPane.showInputDialog(请输入数组长度:);// 显示输入对话框 inputvalue=Integer.parseInt(input); //将输入的数据转换为整型 try { array=new int[inputvalue]; for(i=0;i5;i++) { System.out.println(输出array[+i+]+=+array[i]+ i=+i); } } catch(NegativeArraySizeException e) { JOptionPane.showMessageDialog(null,数组长度不能为负数请重新输入); //输出异常处理信息 } catch(ArrayIndexOutOfBoundsException f) { JOptionPane.showMessageDialog(null,数组长度越界请重新输入); } }while(inputvalue5);//条件不符合时返回重新输入 JOptionPane.showMessageDialog(null,数组长度是+inputvalue,数组长度是,JOptionPane.INFORMATION_MESSAGE); } public static void main(String[] args) { Arraylong(); } } 2. 异常的捕获顺序 在程序中捕获的NegativeArraySizeException异常类和ArrayIndexOutOfBoundsException异常类都是Exception的子类,然而父子类之间是可以有自动类型转换运算的,这就导致了异常捕获时有先后顺序,如果我们将cat

文档评论(0)

fdfdsos + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7100020006000001

1亿VIP精品文档

相关文档