728x90
개요
코딩 테스트를 준비할 때 입력을 받을 때 Scanner와 BufferedReader를 사용해서 입력을 받습니다.
BufferedReader는 Scanner보다 속도가 빠르고 안전하다는 장점이 있지만, 문자열로만 입력을 받기 때문에 정수 사용 시 형변환이 필요하고 반드시 예외처리를 해야 합니다.
이번 글에서는 BufferedReader를 사용할 때 왜 예외처리가 필요한지, 그리고 어떻게 처리해야 하는지 알아보겠습니다.
IOException이란 ❓
IOException이란 입출력 작업 중 발생할 수 있는 예외를 의미합니다.
발생하는 경우
- 파일을 읽거나 쓸 때
- 네트워크를 통해 데이터를 주고받을 때
- 키보드 입력을 받을 때
BufferedReader에서 IOException가 필요한 이유 ❓
- BufferedReader는 입력 스트림을 다루기 때문에
- 입력 과정에서 예기치 못한 오류(파일이 없거나, 네트워크 문제 등)가 발생할 수 있어서
- 이러한 상황에 대비하기 위해 예외 처리가 필요
IOException 처리 방법
try-catch문
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
} catch (IOException e) {
// 예외 처리
} finally {
// 리소스 해제
}
throws 사용
public void readInput() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
}
차이점
- try-catch: 예외를 직접 처리
- throws: 예외를 호출한 메서드로 위임
많이 사용되는 방식
- 코딩 테스트에서는 주로 throws를 사용 (코드가 간단해짐)
- 실제 프로젝트에서는 try-catch를 사용 (예외 처리를 직접하는 것이 안전)
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2024.12.05 - Dockerfile의 WORKDIR 알아보기 (0) | 2024.12.05 |
---|---|
[TIL, 일일 회고] 2024.12.04 - JIT 컴파일러를 통한 자바의 성능 최적화 (0) | 2024.12.04 |
[TIL, 일일회고] 2024.12.02 - Docker 실행 중인 컨테이너 한 번에 종료(삭제)하는 방법 (0) | 2024.12.02 |
[TIL, 일일 회고] 2024.12.01 - Docker COPY 명령어의 경로 지정 방식 이해하기: COPY .. (0) | 2024.12.01 |
[TIL, 일일 회고] 2024.11.30 - VsCode > Docker 확장 프로그램 알아보기 (0) | 2024.11.30 |