Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- java
- sql #부트캠프 #내일배움캠프 #웹관리자 #도전 #학습
- java #문법
- sql #내일배움캠프 #스파르타코딩클럽
- html #css #부트스트랩 #웹사이트 #개발 #초보 #til #내일배움캠프 #스파르타코딩클럽
Archives
- Today
- Total
Hyeok의 웹 개발 블로그
<2025.03.06>Java 챕터 [3-1] ~[3~3] 본문
- 예외
- 예외는 프로그램 실행 중 예상하지 못한 상황이 발생하는 것
- 의도적으로 예외를 발생 시킬때는 throw 를 사용해 발생시킨다.
- 예외를 처리 하지 않으면 프로그램이 중단 될 수 있음.
- 그래서 예외처리는 try-catch를 사용해 프로그램을 실행함
- RuntimeException -UncheckedException
- 컴파일러가 예외 처리를 강제하지 않는 예외
- 예외 처리를 하지 않아도 컴파일 오류(빨간줄)가 발생하지 않습니다.
- 처리 되지않는 예외는 계속 프로그램 시작 지점까지 전파
-끝내 예외가 처리되지 않으면 프로그램이 비정상적으로 종료
- RuntimeException을 상속 받는 모든 예외를 UncheckedException이라 한다.
- Exception-CheckedException
- Exception 클래스를 직접 상속받는 모든 예외를 CheckedException이라한다.
- 컴파일러가 예외 처리를 강제하는 예외
- 예외 처리를 하지 않으면 "컴파일 오류가 발생한다(코드에 빨간줄)"라고 이해
- 반드시 `try-catch`로 예외를 처리하거나 `throw` 키워드로 사용
-> `throw` 로 예외처리의 책임을 호출자에게 전가할 수 있음
- try-catch

throws 활용

- 실습 과제
[요구 사항]
1. 사용자로부터 아이디와 비밀번호를 입력 받는다.
2. 아이디가 "admin", 비밀번호가 "1234"가 아니면 로그인 실패 예외를 발생
3. 로그인 실패 시 "로그인 실패! 아이디 또는 비밀번호가 잘못 되었습니다." 출력 후 다시 입력 받기
우선 아이디와 비밀번호를 입력 받고 로그인 성공 문구 까지 코딩을 진행했습니다.
System.out.print("아이디 입력: ");
String name = sc.nextLine();
System.out.print("비밀번호 입력: ");
String password = sc.nextLine();
login(name, password);
System.out.println("로그인 성공!");
break;
여기서 로그인 과정에서 예외 발생 가능이 있어서 try-catch 를 사용합니다.
try {
System.out.print("아이디 입력: ");
String name = sc.nextLine();
System.out.print("비밀번호 입력: ");
String password = sc.nextLine();
login(name, password);
System.out.println("로그인 성공!");
break;
} catch (Exception e) {
System.out.println(e.getMessage());
}
while 문을 사용해 로그인 실패하는 경우를 만들고 로그인 실패 문구를 나타내줍니다.
public class Home {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
try {
System.out.print("아이디 입력: ");
String name = sc.nextLine();
System.out.print("비밀번호 입력: ");
String password = sc.nextLine();
login(name, password);
System.out.println("로그인 성공!");
break;
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
public static void login(String name, String password) throws Exception{
if(!name.equals("admin")||!password.equals("1234")){
System.out.println("로그인 실패! 아이디 또는 비밀번호가 잘못되었습니다.");
}
}
}
- Optional
Optional 객체는 null을 안전하게 다루게 해주는 객체
- Optional 객체는 값이 있을 수도 있고 없을 수도 있는 컨테이너라고 생각하시면 됩니다.
- Optional 객체를 메서드 반환 자료형에 선언해서 해당 메서드가 null 이 반환될 가능성을 명확하게 전달할 수 있습니다.
- Optional.ofNullable() 을 사용하여 null 이 반환될 수 있는 객체를 감쌉니다.
- 활용할 때는 isPresent() 와 같은 Optional API 를 통해 안전하게 null 처리를 할 수 있습니다.
- null
null은 프로그래밍에서 값이 없음, 참조하지 않음을 나타내는 키워드
- Null 을 직접 처리의 한계

- isPresent() 활용

- orElseGet() 활용

- Collection 이란?
- 프로그래밍 세계에는 다양한 자료구조가 존재합니다.
- 자바 컬렉션 프레임워크는 이러한 자료구조들을 쉽게 사용할 수 있도록 인터페이스와 구현체(ArrayList, HashSet, HashMap 등)를 제공하는 집합입니다.
- 컬렉션을 통해 데이터 저장, 조회, 삭제, 정렬 등 다양한 기능을 간편하게 구현할 수 있습니다.
- 배열과 다르게 컬렉션은 길이를 동적으로 변경할 수 있습니다.(추가 삭제 시 유연하게 길이가 변경됩니다.)
- Collect 종류와 특징

- List 인터페이스 구현한 ArrayList
- ArrayList 는 요소의 순서를 유지하고 중복된 값을 저장할 수 있는 자료구조입니다.
- 요소 추가 → add("값")
- 요소 조회 → get(인덱스)
- 요소 제거 → remove("값")
- 대표적인 구현체로는 ArrayList , LinkedList가 있습니다.

- Set 인터페이스를 구현한 HashSet
- HashSet 은 순서를 유지하지 않고 중복을 허용하지 않습니다.
- → 순서를 보장하지 않기 때문에 get() 지원을 하지 않습니다.
- 요소 추가 → add("값")
- 요소 제거 → remove("값")
- 대표적인 구현체로는 HashSet , TreeSet 이 있습니다.

- Map 인터페이스를 구현한 HashMap
- HashMap 은 키(Key) - 값(Value) 구조로 데이터를 저장합니다.(키: 값)
- 키(Key) 는 중복될 수 없지만 값(Value) 은 중복 가능합니다.
- 순서를 보장하지 않습니다.
- 요소 추가 → put(”키”, 값)
- 요소 조회 → get(”키”)
- 요소 제거 → remove("Steve")
- 키 확인 → keySet()
- 값 확인 → values()
- 대표적인 구현체로는 HashMap, TreeMap 이 있습니다.

'TIL > Java' 카테고리의 다른 글
| <2025.03.10> 키오스크 과제 Lv2 (0) | 2025.03.10 |
|---|---|
| <2025.03.07> 키오스트 과제 Lv1 (0) | 2025.03.07 |
| <2025.03.05> 계산기 과제 Lv.2 (0) | 2025.03.05 |
| <2025.02.28> JAVA 계산기 만들기 (0) | 2025.02.28 |
| <2025.02.26> JAVA 문법 종합반 [2-1]~[2-5] (0) | 2025.02.26 |