RuntimeException被認為是未檢查異常是因為它們在編譯時不會被強制捕獲或聲明。也就是說,在編譯時并不要求在方法簽名中使用throws關鍵字聲明可能拋出的RuntimeException,也不會給出編譯錯誤提示。這與已檢查異常(checked exception)不同,已檢查異常在編譯時必須被捕獲或聲明,否則會導致編譯錯誤。
另外,RuntimeException通常是由程序員的錯誤操作造成的,比如空指針異常(NullPointerException)、數組越界異常(ArrayIndexOutOfBoundsException)等。因為這些異常通常表示程序邏輯錯誤或不當使用API,所以被認為是未檢查異常,需要程序員在編寫代碼時注意并避免這些異常的發生。