안녕하세요!
자바 과제를 하던중에 막히는 부분이 있어서 질문 드립니다.
exception thrown 을 하는 도중에 원하는 곳에 캐치 블락 실행을 시키고 싶은데 캐치 블락이 도저히 안잡히고 계속 오류만 나네요ㅠㅠㅠ
혹시 제가 아직 익셉션을 잘 쓸 줄 몰라서 그런가봐요...ㅠㅠㅠㅠ
도와주시면 정말 감사드리겠습니다!!!!
이게 while loop안의 if statement인데요
Ernest Hemingway,9
F, Scott Fitzgerald,8
두 개를 대입했을때 똑같이 캐치 블락에서 잡아줘야되는데 두번째 꺼가 자꾸 캐치 블락에서 안잡히고 혼자 에러가 뜨네요..
Enter a data point (-1 to stop input): Exception in thread "main" java.lang.NumberFormatException: For input string: "ScottFitzgerald" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at DataVisualizer.main(DataVisualizer.java:60)
else if (!Character.isDigit(line.charAt(line.length()-1))){
while(line.contains(" ")){
line2 = line.replaceAll(" ", "");
try{
int intLine = Integer.parseInt(line2);//제가 여기서 뭘 잘못 쓴거 같아요..
}
catch(NumberFormatException e){
System.out.println("Error: Comma not followed by an integer.");
System.out.println();
continue;
}
System.out.println("Error: Comma not followed by an integer.");
System.out.println("");
}
}
이게 에러가 생기는 구간인것 같구요 while 전문은 이렇습니다
while (!line.equals("-1")){
if (!line.contains(",")){
System.out.println("Error: No comma in string.");
System.out.println("");
}
else if ( withComma.length() - withoutComma.length() >= 2){//사실 에러 뜨는 인풋(F, Scott Fitzgerald,8)이면 여기서 먼저 걸려야 되는데 왜 여기는 안잡히고 다음 구간으로 넘어갈까요...ㅠㅠ
System.out.println("Error: Too many commas in input.");
System.out.println("");
}
else if (!Character.isDigit(line.charAt(line.length()-1))){
while(line.contains(" ")){
line2 = line.replaceAll(" ", "");
try{
int intLine = Integer.parseInt(line2);
}
catch(NumberFormatException e){
System.out.println("Error: Comma not followed by an integer.");
System.out.println();
continue;
}
System.out.println("Error: Comma not followed by an integer.");
System.out.println("");
}
}
else{
String[] listArray = line.split(",");//split input by comma
dataString.add(listArray[0]);
dataInt.add(Integer.parseInt(listArray[1].replaceAll("\\s" , "")));//convert string into integer and remove whitespace next to comma
System.out.println("Data string: " + dataString.get(i));
System.out.println("Data integer: " + dataInt.get(i));
System.out.println("");
++i;
}
System.out.println("Enter a data point (-1 to stop input): ");
line = scnr.nextLine();
}
도와주세요...ㅠㅠㅠㅠ 두시간째 이러고 있습니다....ㅠㅠㅠㅠㅠㅠㅠ아 그리고 제가 자바 배운지 한 6개월 정도밖에 안되서 코딩이 굉장히 지저분할 수 있어요... 아니죠 많이 지저분하죠...ㅋㅋㅋㅠㅠㅠㅠㅠ 양해 부탁드려요!!ㅠㅠㅠㅠㅠㅠ 넘 어렵네요... 하다보면 늘겠죠...??ㅠㅠㅠㅠ