當數組超出邊界時,有沒有辦法跳過當前命令?當數組超出邊界時跳過而不是終止程序(Java)
memory[count] = allProcesses[processIndex[index]+temp];
當數組嘗試訪問不存在的變量時,數組將超出範圍。我只是想打印出錯誤消息並繼續下去,但每次發生時,程序將終止
我已經試過:
try {
memory[count] = allProcesses[processIndex[index]+temp];
} catch (Exception e) {
System.out.println("Page Fault");
Thread.sleep(2000);
}
以下是錯誤消息:
...
Adding Process 10, address 48214, page 1868, offset 12, value 550 to memory location 54
Adding Process 11, address 30649, page 557, offset 13, value 229 to memory location 55
Adding Process 11, address 46819, page 343, offset 7, value 519 to memory location 56
Adding Process 11, address 54762, page 94, offset 14, value 425 to memory location 57
Page Fault
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 726384
at MMU.MMUProcess(MMU.java:58)
at Driver.main(Driver.java:73)
當它終止時是否顯示您的「Page Fault」消息?你可以發佈堆棧跟蹤,如果你有一個? –
除此之外,errormessage將有很大的幫助。我會說你應該在數據被用作索引之前對數據進行清理。 –
如果您發佈了更大的代碼示例並解釋了它與預期行爲的不同之處,它也會有所幫助。 – Antimony