8.4 运行错误检测和处理 |
|---|
| WAP技术站:www.wapease.com
|
例如,下面的函数就可能会导致内存不足:
function f(x) { x=x+"abcdefghijklmnopqrstuvxyz"; f(x); };
该程序执行了一个死循环,不断地把“abcdefghijklmnopqrstuvxyz”这个字符串追加到字符串变量x中,直到x的值超过系统内存承受能力而致死机时为止。 一般地,编程中应尽量减小单个数据的规模和内存资源的占用,并避免死循环程序,这样通常能够有效地防止内存不足错误的发生。 外部异常错误 (1) 用户引起的外部异常错误。如果在程序运行中,用户要中止程序的执行并发出了中止指令,比如按了Reset键,那么此时程序就会中止执行,并给用户返回相应的错误信息。 (2) 系统引起的外部异常错误。主要是指由于系统供电不足、断电或设备损坏等因素造成的异常中止程序执行的错误。避免这类错误也没有什么好方法,只有依赖于程序的外部系统环境稳定、可靠,减少意外事件的发生。 8.4.4 非致命错误及其处理 计算错误 (1) 除数为零。当在程序中出现0除整数、浮点数或其他数据时,都会导致计算错误。例如下面的简单程序就会出现除数为零的计算错误:
var a = 10; var b = 0; var x = a / b; var y = a div b; var z = a % b; a /= b;
避免这种错误的方法并不复杂,只需在程序设计时仔细分析变量数据,尤其是作为除数的变量的值,并通过if条件语句等另外处理这种情况即可。 (2) 整数溢出。程序中执行整数操作时有可能会出现整数计算结果溢出的错误。这种错误通常是整数经计算后产生的,所以编程阶段一般难以发现。不过在程序调试阶段,我们可以通过不断测试比较大的整数运算,来检测是否会出现整数溢出的错误。如果出现,就要对程序中的整数运算做适当的调整,以避开整数无限增大的情况。 |
| 上一篇:8.3 预 编 译 下一篇:第9章 WMLScript库及库函数 |
|
