ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 예외처리 1, 2, 3
    과거⚰️ 2020. 11. 19. 18:42
    package day040;
    
    public class Day04001예외처리1 {
        public static void main(String[] args) {
            int num = 0;
            // 어떤 숫자를 0으로 나누면 에러 발생
            // java.lang.ArithmeticException: / by zero
            // System.out.println(num / 0);
    
    		/*
    		 * # try - catch
    		 * . 자바는 일반적으로 에러가 발생하면 프로그램이 즉시 종료한다.
    		 * . try - catch는 에러가 발생해도 프로그램이 종료되지 않고,
    		 *   에러가 발생한 부분만 동작하지 않고 프로그램이 계속 진행하도록 만들어 준다.(매우 좋음)
    		 *
    		 * # 사용법
    		 * . try {}					: 중괄호 안에 코드를 작성하면 에러가 발생하면
                                          바로 catch 중괄호로 이동한다.
    		 * . catch(Exception e) {}	: 에러가 발생하면 한번 작동된다.
    		 */
    
            try {
                System.out.println(num / 0);
            } catch (Exception e) {
                // 방법(1) 직접 에러가 발생했을 때 보여줄 문구를 출력한다.
                System.out.println("0으로 나눌 수 없습니다.");
                // 방법(2) 자바에서 제공하는 설명서를(어떤 에러인지 설명해줌) 출력한다.
                e.printStackTrace();
            }
    
            System.out.println("프로그램 종료");
        }
    }
    
    
    
    package day040;
    
    public class Day04001예외처리2 {
        public static void main(String[] args) {
            // # 주석처리를 통해 하나씩 실행해보자.
            //----------------------------------------
            // 실습1)
            int[] arr = new int[3];
            try {
                arr[100] = 100;
            }catch(ArrayIndexOutOfBoundsException e) {
                e.printStackTrace();
            }
            //----------------------------------------
    
            //----------------------------------------
            // 실습2)
            int x = 10;
            try {
                int y = 10 / 0;
            }catch(ArithmeticException e) {
                e.printStackTrace();
            }
            //----------------------------------------
    
            //----------------------------------------
            // 실습3)
            String str = "java";
            try {
                int num = Integer.parseInt(str);
            }catch(NumberFormatException e) {
                e.printStackTrace();
            }
            //----------------------------------------
    
            // # 결론)
            // 이처럼 에러의 종류는 너무 많기 때문에
            // 모든 에러를 처리해주는 Exception을 보통 사용한다.
    
        }
    
    }
    
    
    
    
    package day040;
    
    public class Day04003예외처리3 {
        public static void main(String[] args) {
    
            // # try - catch - finally
    
            // # finally
            // 에러 유무와 상관없이 무조건 실행되는 구역이다.
    
            int x = 10;
            int y = 0;
    
            try {
                System.out.println(x / y);
            }catch(Exception e) {
                System.out.println("0으로 나눌 수 없습니다.");
            }finally {
                System.out.println("예외발생과 상관없이 무조건 실행할 문장을 적는다.");
            }
        }
    }
    
Designed by Tistory.