java - 为什么 ArrayIndexOutOfBoundsException 不是编译时错误?

标签 java compilation indexoutofboundsexception compile-time

有人可以向我解释为什么 ArrayIndexOutOfBoundsException 是运行时异常而不是编译时错误吗? 在索引为负数或大于数组大小时的明显情况下,我不明白为什么它不能成为编译时错误。

已编辑:尤其是当数组的大小甚至索引在编译时已知时,例如 int[] a = new int[10]; a[-1]=5;这应该是编译错误。

最佳答案

数组的大小只能在运行时定义(例如,最简单的情况,如果数组的大小取决于用户输入)。

因此,不可能在编译时通过检查数组的访问而实际上不知道其边界(大小)来检查此类异常。

关于java - 为什么 ArrayIndexOutOfBoundsException 不是编译时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23569056/

相关文章:

module - 模块化代码在 Go 中是如何工作的?

c - 将加法重写为一元表达式

java - 在 swing jtable 中的行数之后插入行或记录

android - 我如何处理数组索引越界?

java - Eclipse RCP 中的 JInternalFrame 替代方案

java - EditText 值与 ListView 中第一行的值相同

Java:如何将变量从 JButton ActionListener 传递到主类?

c# - Emacs 'csharp-mode' 字节编译错误

c# - 模拟 Java 中使用的任何类(特别是在 Android 中)

java - 我的 squaretest 也没有分析其他大小和 ArrayIndexOutofBoundsException