第7章多线程与异常处理案例.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1.1 Java的异常处理机制 在Java中,把异常分为错误(Error)与异常(Exception)两大类。 Exception类有自己的方法和属性。它的构造方法有两个: public Exception ( ); public Exception (String s); 7.1.1 Java的异常处理机制 系统定义的运行异常 7.1.2 异常的抛出 1、系统自动抛出的异常 【例7-1】创建一个有错误的程序,测试异常抛出的情况。 1.  /* 测试除数为0时抛出的异常 */ 2. class Example7_1 3.  { 4.    public static void main(String[] args) 5.   { 6.    int a=5,d=0; 7.  System.out.println(a/d); 8.   } 9.  } 7.1.2 异常的抛出 2、声明抛出异常 用throw语句抛出异常对象的语法格式为:  修饰符 返回类型 方法名() throws 异常类名 {    …. Throw 异常类名; …. } 7.1.3 异常处理 异常处理的方法有二种:一种方法是使用try…catch…finally结构对异常进行捕获和处理;另一种方法是通过throws和throw抛出异常。 下面重点介绍使用try…catch…finally结构对异常进行捕获和处理。 try…catch…finally结构对异常进行捕获和处理的形式: try{ 可能出现异常的程序代码 } catch(异常类1 变量1) { 异常类1对应的异常处理代码 }  catch(异常类2 变量2) { 异常类2对应的异常处理代码 }  ...  [finally] { 无论异常是否发生都要执行的代码 } 【例7-2】构造一个异常,计算分母为a-5的分式,当输入数字5时,则抛出异常。 【例7-4】数组下标越界引发异常 class Example7_4 {   public static void main(String[] args)  {  int a[]={1,2,3,4,5};  int sum=0;  try { for (int i=0;i=5 ;i++ ) {sum+=a[i];} System.out.println(sum=+sum); }catch(ArrayIndexOutOfBoundsException e)  { System.out.println(发生异常原因:+e); }   finally { System.out.println(程序运行结束!); }   } } 7.2 多线程的基本概念 什么是线程 7.2.1 线程与多线程 进程与多线程的区别 Java的多线程机制 在Java编程中,每实例化一个线程对象,就创建一个虚拟的CPU,由虚拟CPU处理本线程数据。  每个Java程序都有一个主线程,即由main()方法所对应的线程。对于applet,浏览器即是主线程。 除主线程外,线程无法自行启动,必须通过其他程序来启动它。 7.2.2 线程的生命周期 线程要经历创建、就绪、运行、阻塞和死亡等5个状态 ,称为生命周期。 7.2.2 线程的生命周期 1、创建状态 当我们通过new命令创建了一个线程对象,则该线程对象就处于创建状态。如下面语句所示: Thread thread1 = new Thread(); 创建状态是线程已被创建但未开始执行的一个特殊状态。此时线程对象拥有自己的内存空间,但没有分配CPU资源,需通过start()方法调度进入就绪状态等待CPU资源。 7.2.2 线程的生命周期 2、就绪状态 处于创建状态的线程对象通过start()方法进入就绪状态,如下面语句所示: Thread thread1 = new Thread(); Thread1.start(); start()方法同时调用了线程体,也就是run()方法,表示线程对象正等待CPU资源,随时可被调用执行。  7.2.2 线程的生命周期 3、运行状态 若线程处于正在运行的状态,表示线程已经拥有了对处理器的控制权,其代码目前正在运行,除非运行过程中控制权被另一优先级更高的线程抢占,否则这一线程将一直持续到运行完毕。 7.2.2 线程的生命周期 4、阻塞状态 如果一个线程处于阻塞状态,那

文档评论(0)

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

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

1亿VIP精品文档

相关文档