- 1
- 0
- 约3.74千字
- 约 25页
- 2019-07-17 发布于辽宁
- 举报
第9章 Java高级编程 本章将简单介绍Java中的高级应用,包括异常处理、多线程机制、数据流及文件操作、网络编程、数据库操作五个方面。 9.1 异 常 处 理 在Java语言中,程序员可以在程序中定义异常处理段(exception handler)来捕获和处理异常,在异常发生的时候,一个代表该异常的对象会被创建,并在产生这个异常的方法中被引发。同时,这个方法可以选择自己处理异常,也可以抛出这个异常给别的方法处理。无论怎样,该异常都将被捕获并作出相应的处理。这样可以保证程序在出现了异常的情况下仍然梢约续的执行,不会影响到其他的部分的运转,提高了程序的健壮性。 9.1.1 异常类的层次结构 所有的异常类都是java.lang.Throwable的子类,其层次关系如图所示。 9.1.2 如何捕获异常 在熟悉了异常的概念和分类后,就要介绍如何在程序中捕获异常。Java语言给程序员提供了try…catch代码段,用来捕获可能出现的异常。try意思就是看其代码段内部的代码是否会出现异常,catch则是当try中的代码段出现异常后,捕获异常,并作相应处理。try…catch使用的语法格式为: try { 可能会出现异常的代码段; } catch(异常类型名 处理该异常对象) { 异常处理代码段; } 9.1.3 如何抛出异常 编写代码过程中,如果不想在这段代码中捕捉和处理一个可能出现的异常,那么就需要将这个异常传递出去,传递给调用它的方法去处理该异常。这个时候就需要使用throw和throws语句: (1)throws语句:在方法声明中使用,抛出异常; (2)throw语句:在方法体内部使用,抛出异常。 9.1.4 自定义异常 前面两节介绍了,利用系统提供的标准异常类来捕获和处理异常。但如果碰到了可能出现的异常,却在标准异常类中并没有定义过的时候,就需要建立自己的异常类。建立自己的异常类,要做的只是根据需要,从Exception类或是从Exception类的子类中继承出需要的类。习惯上,会经常为每一个异常类,提供一个默认的和一个包含详细信息的构造器。 需要注意的是,自定义异常类,必须由程序员使用throw语句抛出。 9.1.5 使用finally语句段 在之前使用try…catch语句结构的时候,若try语句段中的某一句出现异常情况,那么这部分try语句段中,从出现异常的语句开始,之后的所有语句都不会被执行,直到这部分try语句段结束。 但是在很多的情况下,希望无论是否出现异常,某些语句段都需要被执行,特别是释放资源的操作,例如打开文件后的关闭操作。那么就可以把这部分代码放在finally语句段中,即使try或catch语句段中含有return语句,程序都会在异常抛出后先执行finally语句段,除非try或catch语句段中执行System.exit()方法,或是出现Error错误时finally语句段才不会被执行而退出程序。 9.2 Java多线程机制 在这一章之前,介绍的程序都是单线程的。也就是说,一个程序,从头到尾都会按顺序执行语句,在程序开始至结束的这一段时间内只做了一件事。而实际中,由于计算机中CPU的工作效率实在是太高了,以至于在很多时间CPU都是被闲置的。为了更好的利用计算机中的资源,Java语言为编程提供了很方便就能实现的多线程机制。也就是说程序员设计的一段Java程序,可以在一段时间内同时做多件事。 9.2.1 Java中的线程 每一个线程都有自身的产生、存在和消亡的过程,是一个动态的概念。每一个Java程序都有一个缺省的主线程,对应于application应用程序,主线程就是main()主方法的执行步骤;对于Appet小应用程序,则是按其生命周期执行的步骤作为主线程。 多线程机制则是在主线程执行的过程中,又建立了多个线程在同一段时间内执行。由于计算机CPU的处理速度非常的快,所以在很短的一段时间内(几毫秒或更短),CPU按顺序执行了几个线程,但对于用户来说,感觉上是在这一段时间,CPU同时完成了多个线程的活动。举个简单的例子:当用户从网上下载一段音乐的同时,就可以欣赏其中已经下载完成的部分,而实际实现的代码中,是存在了下载和播放两个线程,同时要协调好这两个线程,这样就使用户在下载歌曲的这一段时间内,同时完成了下载和播放两件事情。 9.2.2 创建线程的两种方式 Java语言中实现多线程有两种途径:一种是创建一个类,让该类继承Thread类;另一种方法是让自己创建的类实现Runnable接口。使用这两种方法都可以使用到Thread类及其方法。 1.继承Thread类并覆盖run()方法 2.实现Runnable接口 9.2.3 线程的启动与停止 当使用线程的构造函数创建了一个线程对象时,程
您可能关注的文档
- Java EE企业级应用开发第3章 Spring AOP.ppt
- Java EE企业级应用开发第4章 Spring的数据库开发.ppt
- Java EE企业级应用开发第5章 Spring的事务管理.ppt
- Java EE企业级应用开发第6章 初识MyBatis.ppt
- Java EE企业级应用开发第7章 MyBatis的核心配置.ppt
- Java EE企业级应用开发第8章 动态SQL.ppt
- Java EE企业级应用开发第9章 MyBatis的关联映射.ppt
- Java EE企业级应用开发第13章 数据绑定.ppt
- Java EE企业级应用开发第14章 JSON数据交互和RESTful支持.ppt
- Java EE企业级应用开发第16章 文件上传和下载.ppt
原创力文档

文档评论(0)