Java빈칸 채우기어려움 · 30점#예외#사용자 정의 예외#반복문

65. 사용자 정의 예외의 전파와 finally

다음 Java 프로그램의 실행 결과가 첫 줄 "+4.[음수].+5..", 둘째 줄 "초과 2 2 10"이 되도록 빈칸 ①에 들어갈 키워드와 빈칸 ②에 들어갈 클래스 이름을 쓰시오.

1class LimitException extends Exception {
2 int over;
3
4 LimitException(int over) {
5 super("초과 " + over);
6 this.over = over;
7 }
8}
9
10public class Main {
11 static int total = 0;
12
13 static void add(int v) throws LimitException {
14 if (v < 0) {
15 throw new IllegalArgumentException("음수");
16 }
17 total += v;
18 if (total > 10) {
19 int over = total - 10;
20 total = 10;
21 ( ① ) new LimitException(over);
22 }
23 System.out.print("+" + v);
24 }
25
26 static void process(int[] vals) throws LimitException {
27 for (int v : vals) {
28 try {
29 add(v);
30 } catch (IllegalArgumentException e) {
31 System.out.print("[" + e.getMessage() + "]");
32 } finally {
33 System.out.print(".");
34 }
35 }
36 }
37
38 public static void main(String[] args) {
39 int[] vals = {4, -1, 5, 3, 2};
40 try {
41 process(vals);
42 System.out.println("완료");
43 } catch (( ② ) e) {
44 System.out.println();
45 System.out.println(e.getMessage() + " " + e.over + " " + total);
46 } catch (Exception e) {
47 System.out.println("기타");
48 }
49 }
50}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.