- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6_常见错误和异常处理
第6章 常见错误和异常处理 开发应用程序时出现错误是不可避免的。 对待程序中出现错误的正确态度:尽可能的少有错误;不要恐慌,不要掩盖错误。 程序运行过程中出现的常见的错误类型。 学习调试的方法。 学习异常处理是为了让可能的错误发生在控制中。 6.1常见的错误 了解常见的错误是为了避免这些错误。 常见的错误有: 编译时出现错误、 运行时期发生的错误、 运行后发现的错误,即发现程序运行结果不合要求。 6.1.1编译错误 Java语言初学者常犯的错误: 大小写形式混淆 使用未定义的变量 使用未初始化的变量 数据类型与变量类型不符 语句后遗漏了分号 小括号不配对 养成良好的编程习惯,借助开发工具可以减少编译错误。 6.1.2运行错误 程序运行时可能因为各种错误而运行中断。 除数为零 数组下标越界 数组下标越界 int a[ ] = new int[10]; for(int i = 1; i = 10; i ++) system.out.println(a[i]); 6.1.3逻辑错误 这类错误合乎语法 程序运行后没有得到预期的效果 1,超出数据类型的数值范围 2,将“==”写成了“=” 3,大括号问题 最好在任何情况下都使用大括号将语句体括起来 int sum = 0; int i=1; While(i = 100) sum =+i; i++; 6.2 异常处理 用户期望程序可以聪明地处理所出现的错误,比如:返回到一个安全的状态并且允许用户执行其它程序。 程序出现错误后你的程序起码可以应该: 通知用户程序出现了一个错误 保存全部工作 允许用户安全地退出程序 6.2.1 什么是异常处理 什么是异常? 异常实际上是程序中错误导致中断了正常的指令流的一种事件. 没有处理错误的程序: readFile { open the file; determine its size; allocate that much memory; read the file into memory; close the file; } errorCodeType readFile { //以常规方法处理错误 initialize errorCode = 0; open the file; if (theFileIsOpen) { determine the length of the file; if (gotTheFileLength) { allocate that much memory; if (gotEnoughMemory) { read the file into memory; if (readFailed) { errorCode = -1; } } else { errorCode = -2; } } else { errorCode = -3; } close the file; if (theFileDidntClose errorCode == 0) { errorCode = -4; } else { errorCode = errorCode and -4; } } else { errorCode = -5;} return errorCode; } 观察前面的程序你会发现大部分精力花在出错处理上了. 只把能够想到的错误考虑到,对以外的情况无法处理 程序可读性差 出错返回信息量太少 用Java中的异常机制处理错误 try { open the file; determine its size; allocate that much memory; read the file into memory; close the file; } catch(fileopenFailed) { dosomething; } catch(sizeDetermineFailed) {dosomething; } catch(memoryAllocateFailed) { dosomething; } catch(readFailed) { dosomething; } catch(fileCloseFailed) { dosomet
文档评论(0)