Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

| ไอที | Java | 5191

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

บทความนี้เรามาทำความรู้จักกับ Exception ที่ชื่อว่า IndexOutOfBoundsException กัน ซึ่ง Exception ที่เกิดขึ้นจะแสดงข้อความประมาณด้านล่าง
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.rangeCheck(Unknown Source)
	at java.util.ArrayList.get(Unknown Source)
	at com.doesystem.CodeFromDoesystem.main(CodeFromDoesystem.java:9)

จากข้อความ Exception ข้างบนเราสามารถแปลข้อความบางส่วนได้ ดังนี้
Exception เกิด Exception
thread "main" ก็คือ thread ที่ชื่อว่า main
IndexOutOfBoundsException เกิด Exception ที่ชื่อว่า IndexOutOfBoundsException
Index: 0 ก็คือ index ที่ 0
Size: 0 ก็คือมีขนาด 0

เมื่อเรานำคำว่า IndexOutOfBoundsException มาแยกแปลแต่ละตัว จะได้ว่า
Index ก็คือ index ของ Array
Out Of Bounds ก็คือ นอกเหนือไปจากตัวมัน นอกเหนือขอบเขตของมัน
Exception ก็คือ เกิด Exception

ดังนั้นจากข้อความแจ้ง Exception เราสามารถสรุปได้คร่าว ๆ ว่า เกิด Exception เกี่ยวกับ index ที่นอกเหนือไปจากตัวมันหรือนอกเหนือขอบเขตของมัน

ดังนั้นลองมาดูโค้ดที่ทำให้เกิด Exception กัน
package com.doesystem;

import java.util.ArrayList;
import java.util.List;

public class CodeFromDoesystem {
	public static void main(String[] args) throws Exception {
		List<String> testList = new ArrayList<String>();
		testList.get(0);
	}
}

จากข้อความและโค้ด CodeFromDoesystem.java:9 ให้เราไปดูบรรทัดที่ 9 จะเห็นว่ามีการ get ค่าที่ index 0 ออกมาจากตัวแปร testList ดังนั้นเราลองไปดูว่า testList มี index กี่ตัว และมีขนาดเท่าไหร่ จากโค้ดจะเห็นมี testList มีขนาด 0 นั่นคือยังไม่มีข้อมูลมี size = 0 เวลา get ค่า index 0 จึงเกิด Exception

comments