我这样理解
按照定义,OutOfRangeException 应该用于潜在问题是逻辑性的情况 - 由于错误的代码或定义而发生。OutOfBoundsException 用于运行时。
示例(另请参阅“OutOfBoundsException 类”文章中的说明)
<?php
function prepareData(PDOStatement $s) {
$x = $s->fetch();
if (!isset($x['secretColumn']))
throw new OutOfRangeException ("Secret column doesn't exist! Verify table definition and query.");
}