Skip to content

Commit 6df09d4

Browse files
authored
Add files via upload
1 parent 10c1cef commit 6df09d4

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package week03.basic;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class TryCatchFinallyParseInts {
7+
8+
public static void main(String[] args) {
9+
System.out.println("<예외 기본: try/catch/finally 동작 확인>");
10+
// B-7) 예외 기본: try/catch/finally 동작 확인
11+
// 문제: 문자열 배열에서 정수만 파싱해 리스트로 모으되, 숫자가 아니면 `NumberFormatException`을 잡아
12+
// 건너뛰고, 마지막에 `finally`에서 `"done"`을 출력하라.
13+
// 문제설명: `try` 블록에서 예외가 나면 곧바로 해당 타입의 `catch`로 흐름이 이동한다.
14+
// `finally`는 예외 발생과 관계없이 항상 실행된다. 이 패턴은 입력 정제에 자주 쓰인다.
15+
// 힌트: `try { ... } catch (NumberFormatException e) { ... } finally { ... }`,
16+
// `ArrayList`.
17+
String [] str = {"8", "e", "com", "321", "no", "9", "k", "3", "hi", "93"};
18+
List<Integer>list = new ArrayList<>();
19+
20+
try {
21+
for (int i =0; i < str.length; i++) {
22+
String trimStr = str[i].trim(); // 공백제거
23+
if (trimStr.isEmpty()) { // 비어있는 칸 조기종료
24+
continue;
25+
}
26+
try {
27+
list.add(Integer.parseInt(trimStr));// 정수이면 list에 추가
28+
} catch (NumberFormatException e) {
29+
}
30+
}
31+
} finally {
32+
System.out.println("done");
33+
}
34+
System.out.println(list);
35+
}
36+
37+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package week03.basic;
2+
3+
public class ValidateAgeIllegalArgument {
4+
5+
String outOfRange(int age){
6+
if(age < 0 || age > 150) {
7+
throw new IllegalArgumentException("0~150 범위를 벗어났습니다.");
8+
}
9+
return "OK";
10+
}
11+
12+
public static void main(String[] args) {
13+
System.out.println("<인자 검증: IllegalArgumentException 던지기>");
14+
// B-8) 인자 검증: IllegalArgumentException 던지기
15+
// 문제: 나이 `age`가 0~150 범위를 벗어나면 `IllegalArgumentException`을 던지고(메시지 포함),
16+
// 아니면 `"OK"`를 반환하는 메서드를 작성하라.
17+
// 문제설명: 잘못된 입력(도메인 불변 위반)은 조기 실패가 원칙이다.
18+
// 체크 예외보다 런타임 예외로 간단히 신호하는 것이 도메인 검증에 흔하다.
19+
// 힌트: `if (age<0 || age>150) throw new IllegalArgumentException("...");`.
20+
ValidateAgeIllegalArgument vaa = new ValidateAgeIllegalArgument();
21+
System.out.println(vaa.outOfRange(25));
22+
System.out.println(vaa.outOfRange(200));
23+
24+
}
25+
26+
}

0 commit comments

Comments
 (0)