欢迎来到天天文库
浏览记录
ID:59568083
大小:209.50 KB
页数:73页
时间:2020-11-11
《Java程序设计电子教案第五章资料.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java程序设计电子教案第五章5.1编程中的错误每种计算机高级语言都有自己的语法规范,编译系统就根据这个规范来检查编程人员所书写的源代码(程序)是否符合既定的标准。有的高级语言的语法规定得比较严格,有的语言则给编程人员很大的自由度,如C语言,程序可以写得很灵活,使编程者可充分发挥他们的核心和能力。Java语言是定位于网络计算的安全性要求较高的语言,它的语法规范设计得比较全面,相对于C语言增加了不少规定。例如,数组元素下标越界检查、检查对未开辟空间对象的使用等。由于更多的检查工作由系统自动完成,可
2、以减少编程者的设计负担和程序中的隐含错误,提高初学者编程的成功率。上一页下一页返回5.1编程中的错误大部分编译错误是由于对语法不熟悉或拼写失误等引起的,例如在Java语言中规定:需在每个句子的末尾使用分号,标识符区分大小写,如果不注意这些细杰,就会引发编译错误。由于编译系统会给出每个编译错误的位置和相关的错误信息,所以修改编译错误相对较简单;但同时由于编译系统判定错误比较机械,再参考他所指出的错误地点和信息时应灵活的同时参照上下文其他语句,将程序作为一个整体来检查。没有编译错误是一个程序能正常运
3、行的基本条件,只有所有的编译错误都改正了,源代码才可以被成功的编译成目标代码或字节代码。上一页下一页返回5.1编程中的错误5.1.2运行错误一个没有编译错误的可执行或解释的程序,距离完全正确的程序通常还有一段距离,这是因为排除了编译错误,程序中可能还存在着运行错误。运行错误是在程序的运行过程中产生的错误。根据性质不同,运行错误还可分为系统运行错误和逻辑运行错误。上一页下一页返回5.1编程中的错误系统错误是指程序在执行过程中引发了操作系统的问题。应用程序是工作在计算机的操作系统平台上的,如果应用程
4、序运行时所产生的运行错误危及操作系统,对操作系统产生损害,就有可能造成整个计算机的瘫痪,例如死机、死循环等。所以不排除系统运行错误,程序就不能正常地工作。系统运行错误通常比较隐秘,排除时应根据错误的现象,结合源程序仔细判断。例如,出现死循环,就应该检测源程序中的循环语句及其中止条件;出现死机,就应该检查程序中的内存分配处理语句等。上一页下一页返回5.1编程中的错误排除了系统运行错误,程序可以顺利执行了,却仍然不能代表它已经毫无问题了。因为程序中还有可能存在着逻辑运行错误。逻辑运行错误是指程序不能
5、实现编程人员的设计意图和设计功能而产生的错误,例如排序时不能正确处理数组头后的元素等。有些逻辑运算错误是由于算法考虑不周引起的,也有些则来自编码过程中的疏忽。排除运行错误时,一个非常有效和常用的手段是使用开发环境所提供的单步运行机制和设置断点功能来分解程序运行过程,使之在人为的控制下边调试边运行。在调试过程中,调试者可以随时检查变量中保存的中间量,设置临时运行环境,一步一步地检查程序的执行过程,从而挖出隐藏的错误。上一页返回5.2异常与异常类5.2.1异常处理机制概述异常就是在程序的运行过程中所
6、发生的异常事件(不正常现象),它中断指令的正常执行。在Java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象,故又称为特殊的运行错误对象。很多类型的错误也都会导致异常的产生,如需要打开的文件不存在、内存不够、数据访问超界、严重者导致硬盘崩溃等,都会影响程序的正常执行。在网络环境中运行的Java程序,安全是首先考虑的重要元素之一。为了能够及时有效地处理程序中的远行错误,Java中通过引入异常和异常类来处理。作为面向对象的语言,异常与其他语言要素一样,是面向对象规范的一部分,是异常类的对
7、象。下一页返回5.2异常与异常类Java中定义了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容。每当Java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常与之相对应时,系统都会产生一个相应的该异常类的对象,即产生一个异常。一旦一个异常对象产生了,系统中就一定有相应的机制来处理它,确保不会产生死机、死循环或其他对操作系统的损害,从而保证了整个程序运行的安全性。这就是java的异常处理机制。如在例5-1中,当我们在一个文件上建立文件输入流时
8、,如果这个文件并不存在,异常就会生成,另外,在从文件中读取数据时,也可能发生I/O异常。上一页下一页返回5.2异常与异常类[例5-1]文件操作异常。Importjava.io.*;ClassExceptionDemol{Publicstaticvoidmain(Stringargs[]){FileInputStreamFis=nesFileInputStream(“text”);Intb;While((b=fis.read())!=-1){System.out.print(b);}Fis.clo
此文档下载收益归作者所有