当写这样简单的东西:有人熟悉Netbeans:为什么会发生这种情况?错误不是一个真正的错误?
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter array size: ");
int x = sc.nextInt();
int [] anArray;
int index = 100;
anArray = new int[x];
for (int i=0; i<=x; i++){
anArray[i] = index;
index += 100;
System.out.println ("Element at index "+ i + ": " + anArray[i]);
}
}
}
Netbeans的编译和正常运行的代码,但在输出端这样看:
run:
Please enter array size:
12
Element at index 0: 100
Element at index 1: 200
Element at index 2: 300
Element at index 3: 400
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 12
Element at index 4: 500
Element at index 5: 600
Element at index 6: 700
Element at index 7: 800
Element at index 8: 900
Element at index 9: 1000
Element at index 10: 1100
Element at index 11: 1200
at Practice.main(Practice.java:21)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
这似乎离我..为什么是例外通过代码中途抛出?然后在最后完成?
它指向第21行: anArray [i] = index;
老实说不是一个大问题..我只是玩弄和审查一些Java的基础知识(这是一段时间......)和例外是让我觉得我做错了什么事,米不知道我其实是因为它似乎工作我的意图。
谢谢!
该问题处理更多的线程的同步,然后它与您的代码。 Netbeans可能使用两个不同的线程监视stderr和stdin,然后尝试将输出同步到单个线程(EDT)中,但是由于每条线(可能)都单独同步,所以它们会重叠。是的,这很烦人。有人可能会争辩说,有两个独立的窗户会更有帮助,有时它会,有时它不会 – MadProgrammer