范围检查经常被用于确保某个数字处在一个特定的范围之内。通常在访问数组的时候会进行该检查,因为当数组下标越界的时候,数据会被写入其它变量的空间,甚至会覆盖压栈的寄存器数值。这样一来,程序可能会崩溃,或者是导致一些安全漏洞的产生。在Java中,Java虚拟机将在尝试访问数组中的元素的时候,自动的进行数组边界检查,并且在下标越界的时候引发异常。
范围检查的另一个常见用途是在两种数据类型相互转换的时候。在构建在.NET Framework上的语言中,超出范围的强制转换将引发Invalid Cast Exception类型的异常。
比如将一个32位有符号整数类型的变量强制转换到一个16位有符号整数类型的变量之前,会检查这个变量的值是否在-32768~ 32767之间(16位有符号整数可以表示的整数范围),而不是诸如32768之类的无法表示的数字。2100433B