BufferedReader
버퍼를 이용하여 문자열(문자)를 입력 받는 클래스로 입력 속도가 향상된 클래스
InputStreamReader
바이트 스트림을 문자 스트림으로 변경시켜줌
// br.readLine 문자열
// br.read 문자
IOException :입출력에 문제가 발생할 때 발생하는 예외(checked exception)
checked exception은 반드시 예외처리를 해야 하며 예외를 처리하지 않으면 컴오류 발생
checked exception은 메서드를 만들때 throws 한 예외
NumberFormatException : 숫자로 변환할 수 없는 문자열을 숫자로 변환할 때 발생
unchecked exception으로 반드시 catch하지 않아도 되지만
catch하지 않은 상태에서 NumberFormatException이 발생하면 프로그램은 종료됨
ArithmeticException(unchecked exception) : 0으로 나누는 경우
e.getMessage()); // 간단한 메시지 출력
e.toString()); // 예외클래스명 및 간단한 메시지 출력
e.printStackTrace(); // 에러 메시지를 표준출력장치로 출력 (자세한 예외 메시지)
Exception e // 모든 예외를 catch. 예외를 상황별로 분리할 수 없다.
ArrayIndexOutOfBoundsException(unchecked exception) : 배열의 첨자가 벗어난 경우 발생하는 예외
finally 블럭
catch 하지 않는 예외가 발생해도 실행
catch 블럭이 없어도 finally만 사용 가능.
일반적으로 사용한 resource를 close할 때 사용 ex) sc.close();
try ~ with ~ resource : 자동으로 resource를 close() 함
throws Exception { // 이 메서드를 호출하는 곳에서 예외를 catch하도록 설정
throws : 메서드를 호출하는 곳에서 예외를 처리하도록 설정
main() 메서드에서 예외를 throws 할 경우
예외가 발생하면 프로그램은 비정상 종료되므로 main()에서는 throws 하지 않는다.
RuntimeException은 unchecked 예외로 반드시 catch 할 필요는 없다.
unchecked는 throws를 안해도 되고 checked는 throws를 무조건 해야 한다.
// 사용자 정의 예외 클래스
// checked exception : Exception을 상속 받음
// unchecked exception : RuntimeException을 상속 받음
'Study > 쌍용' 카테고리의 다른 글
자바 컬렉션(2) (0) | 2022.07.31 |
---|---|
자바 제네릭 & 컬렉션 (0) | 2022.07.30 |
자바 예외 처리(1) (0) | 2022.07.28 |
자바 추상 클래스 & 인터페이스 (0) | 2022.07.27 |
자바 오버라이딩 & 캐스팅 (0) | 2022.07.26 |