Java/공부

0. 예외 처리

pakms980319 2024. 3. 13. 11:54

1. 예외

프로그램이 실행되는 동안에 발생하는 예기치 않은 에러


2. 컴파일 에러와 런타임 에러

 

1) Compile time Error

컴파일할 때 발생하는 에러


2) Run time Error

실행할 때 발생하는 에러


3. Java의 런타임 에러

 

1) 에러(error)

프로그램 코드에 의해서 수습될 수 없는 심각한 오류


2) 예외(exception)

프로그램 코드에 의해서 수습될 수 있는 미약한 오류


3) 예외처리

  • 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 (강제 종료 대신 의도된 종료 가능)
  • 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지

4. 예외 처리 - 예외 클래스

 

1) Throwable 클래스

자바에서 에러와 예외 사항을 모두 나타내기 위한 최상위 클래스

 


5. 예외 처리 - 예외가 발생하는 예제

 

1) 문제

String 변수 ans에 "y"가 들어있는 경우 "OK"를 출력, "n"이 들어있는 경우 "good" 을 출력, 그 외의 경우는 "다시 입력하세요"를 출력하라.

 


2) try-catch 와 Exception 클래스

 

 

컴파일러는 try 구문에서 예외가 발생하는지 검사하여 예외가 발생하게 되면 실행을 멈추고 catch 구문의 예외를 처리하기 위한 문장들을 수행한다.


3) 풀이

 

실행 결과


4) 다른 예외 처리 예제 - ArrayIndexOutOfBoundException

 

 

배열 범위를 벗어나는 index를 참조하려고 하면 위의 에러가 발생한다

 

4-1) 예외 처리


5) 다른 예외 처리 예제 - ClassCastException

 

Dog 클래스와 관련이 없는 Cat 클래스 인스턴스를 Dog로 casting 하려고 한다면 밑의 에러가 발생한다

 

 

위 코드의 예외 처리는 changDog에서 할 수도 있고 main에서 메서드 호출 부분에서 예외 처리를 할 수도 있다

 

5-1) 예외 처리


6) 예외 처리 - 한번에 묶어서 처리

 

한번에 여러 예외를 발생 시켜 이 예외들을 한번에 묶어서 처리하는 실습이다

 

6-1) 예외 처리

 

코드에서 발생할 수 있는 여러 예외 처리를 catch를 이용하여 작성하였다

밑의 예외 처리들이 모두 작동하는 것은 아니고 한 가지 예외처리가 발생하면 try의 실행은 중단된다

 

6-2) 예외 처리 - 하나의 catch문 작성 (Exception)

 

예외 처리 객체를 출력해주면 어떤 예외가 발생했는지 아래와 같이 확인할 수 있다


6. 예외 처리 - finally ( 무조건 실행되는 코드 )

 

finally 를 통해 작성한 코드는 예외가 발생하든 안하든 무조건 실행된다

 


예외 처리의 목표는 프로그램의 의도치 않은 중단 방지이다

'Java > 공부' 카테고리의 다른 글

자바 스트림 만들기  (0) 2024.12.09
자바 스트림(Stream), 스트림의 특징  (0) 2024.12.09
0. Wrapper 클래스  (0) 2024.03.13
0. Class.class  (0) 2024.03.13
0. hashCode()  (0) 2024.03.13