열심히 끝까지

29강 예외처리 - 예외 / 예외처리 개념 본문

멘토씨리즈 JAVA

29강 예외처리 - 예외 / 예외처리 개념

노유림 2022. 5. 3. 14:15

29-1 ) 예외처리
        (1) 예외 / 예외처리 개념
                예외란?
                      : 프로그램 실행 중 발생하는 오류 중에서 처리가 가능한 것을 의미

                 - 에러 : 개발자가 조치를 취할 수 없는 수준
                             ex ) 메모리 부족, JVM 동작 이상
                 - 컴파일 에러 : 컴파일 시 발생하는 에러
                             ex ) 오타, 잘못된 자료형
                 - 런타임 에러 : 프로그램 실행 도중에 발생하는 에러
                 - 로직 에러 : 실행은 되지만 의도와 다르게 동작하는 에러
                 - 예외 : 다른 방식으로 처리 가능한 오류
                             ex ) 입력값 오류, 네트워크 문제

               <실습>
               예외에 대한 간단한 예시 코드 실습

예외처리(Exception Handing)란?
                       : 예외가 발생했을 때 이를 적절히 처리하여
                         프로그램이 비정상적으로 종료되는 것을 막는 방법

                 예시 > 
                     1. 입력오류?
                           : 숫자 입력 해야 하는 곳에 문자를 입력할 경우를 방지하기 위해
                             문자 입력 시 숫자를 입력해야 한다고 사용자에게 알려줌
       
        (2) try-catch-finally
             try - catch
                  : 예외 발생 시, 적절하게 처리하기 위해 
                    자바에서 제공하는 예외처리 문법

             [try - catch 문]
                   try{
                          예외가 발생할 수 있는 명령;
                   }
                   catch(발생할 수 있는 예외 클래스명){
                           예외 발생 시 실행할 명령;
                   }  

             <실습>
              예외 발생 시 처리하는 방법 실습

배열이 틀린 경우 뜨는 오류 및 예외
산술에서 오류가 난 경우 뜨는 에러 및 예외


            
               <예외 클래스>
                ArithmeticException : 산술연산 관련 오류
                ArrayIndexOutOfBoundsException : 배열 인덱스 접근 오류

             finally 문
                : try - catch문에서 선택적으로 추가할 수 있는 문법
                 오류가 발생하든 하지 않든 무조건 실행하는 구문

             [finally 문]
                  try{
                          예외가 발생할 수 있는 명령;
                   }
                   catch(발생할 수 있는 예외 클래스명){
                           예외 발생 시 실행할 명령;
                   } 
                   finally{
                            예외가 발생하든 안하든 무조건 실행하는 명령;
                    }
           
              <실습>
              finally는 N/W 연결 시, 외부와의 연결을 종료하는 작업에서 주로 사용

산술의 오류가 발생한 경우
산술의 오류가 발생하지 않은 경우



              네트워크 + 파일 입출력시에도 finally 많이 쓰임

              프로그램에 있는 데이터를 파일에 쓰거나
              파일에 있는 데이터를 프로그램에 불러오는 것
              => 파일 입출력
              ==> 입출력을 하기위한 연결망이 필요(=stream)
                     마지막에 닫아주는 작업이 꼭 필요하기에 finally 잘 쓰임