國營聯招 資訊計算機原理、網路概論111 年第 19 題單選題考點:執行期例外拋出考點:Java vs C++ 差異
下列在Java語言中,當陣列(Array)的索引值(Index)超過宣告範圍時,何者正確?
A編譯器會編譯程式,但程式執行時會產生例外(Exception)正確答案
B編譯器會編譯程式,但程式執行時結果可能錯誤
C編譯器在編譯程式時產生錯誤並停止編譯程式
D編譯器在編譯程式時產生警告訊息,但仍會編譯程式
A正確答案
Java陣列越界(ArrayIndexOutOfBoundsException):編譯時不報錯,執行時拋出例外,這是Java執行期檢查機制的核心特性。
逐選項解析
A編譯器會編譯程式,但程式執行時會產生例外(Exception)執行期例外拋出✓ 正確
正確。Java編譯器只做語法與型別檢查,無法預知執行時索引的實際值是否越界;執行時JVM會拋出ArrayIndexOutOfBoundsException(屬於RuntimeException)。
B編譯器會編譯程式,但程式執行時結果可能錯誤Java vs C++ 差異✕ 易錯陷阱
此選項是C/C++的行為(未定義行為,可能讀到垃圾值或覆蓋記憶體)。Java有JVM保護機制,不會靜默產生錯誤結果,而是強制拋出例外,兩者差異極大。
C編譯器在編譯程式時產生錯誤並停止編譯程式✕ 錯誤
D編譯器在編譯程式時產生警告訊息,但仍會編譯程式✕ 錯誤
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本