這是我的代碼。這里 PQRST 應該是輸出,但沒有列印 R。我不明白為什么?
class Validator{
public int[] studentId = { 101, 102, 103 };
public void validateStudent(int id) {
try {
for (int index = 0; index <= studentId.length; index ) {
if (id == studentId[index])
System.out.println("P");
}
} finally {
System.out.println("Q");
}
}
}
public class Tester {
public static void main(String[] args) {
Validator validator = new Validator();
try {
validator.validateStudent(101);
System.out.print("R");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("S");
} finally {
System.out.println("T");
}
}
}
uj5u.com熱心網友回復:
問題是 validateStudent 方法以 結尾ArrayIndexOutOfBoundsException exception,因此該System.out.print ("R");陳述句不執行。當例外發生時。
我可能會嘗試以不同的方式解決這個問題,而不是例外,我認為這在邏輯和處理方面非常復雜。它只是減慢了可能更簡單的程式。
uj5u.com熱心網友回復:
您的代碼當前正在拋出ArrayIndexOutOfBoundsException. 因為你超出了陣列的長度。這
for (int index = 0; index <= studentId.length; index ) {
應該
for (int index = 0; index < studentId.length; index ) {
但隨后S將不會被列印(因為它不會拋出Exception)。
今天是學習如何使用除錯器的好日子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/426249.html
上一篇:如何回傳可選而不是拋出例外?
