loading

새소식

Framework/Springboot

[Springboot] 스프링부트 예외처리 (try~catch~finally)

  • -
728x90
반응형

 예외 (Exception)

- 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류

- 예외가 발생되면 프로그램 종료

- 예외 처리 추가하면 정상 실행 상태로 돌아갈 수 있음

  1) 컴파일 오류 (Complie Error)  : 컴파일 불가

  2) 런타임 오류 (Runtime Error) : 실행 중 오류

  3) 논리 오류 (Logical Error) : 버그 (흐름상 잘못된 코딩) => 해결이 제일 어려움

 

(1) 예외 처리 예시

package prac01;

public class ErrorExam {
    public static void main(String[] args) {
        String str = null;
        try {
            System.out.println(4 / 0); // Arithmetic
            System.out.println(new String().charAt(1)); // IndexOutOfBounds
            System.out.println(str.equals("")); // NullPointer
            int[] arrs = new int[-1]; // NegativeArraySize
        } catch(ArithmeticException e) {
            System.out.println("산술연산 예외 발생");
        } catch (StringIndexOutOfBoundsException e) {
            System.out.println("문자열의 인덱스 범위초과");
        } catch (NullPointerException e) {
            System.out.println("널 포인터 오류 발생");
        } catch (NegativeArraySizeException e) {
            System.out.println("네거티브 배열 크기 오류 발생");

        }
    }
}

 

 (2) 데이터 수집 1 코드 예외처리

package prac01;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class 데이터수집1 {
    public static void main(String[] args) {
        URL url = null;
        try {
            url = new URL("http://ggoreb.com/quiz/harry_potter.txt");
            URLConnection con = url.openConnection();
            InputStream in = con.getInputStream(); // getFileInputStream(); 으로 작성할경우 내장되어있는 파일을 가져올 수 있음
            String result = "";
            while(true) {
                int data = in.read();
                if(data == -1) break;
                char c = (char) data;
                result += c;
            }
            System.out.println(result);
        } catch (MalformedURLException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }
}

 

 (2) 데이터 수집 2 코드 예외처리

package prac01;

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class 데이터수집2 {
    public static void main(String[] args) {
        URL url = null;
        try {
            url = new URL("http://ggoreb.com/quiz/운수좋은날.txt");
            URLConnection con = url.openConnection();
            InputStream in = con.getInputStream();
            InputStreamReader isr = new InputStreamReader(in, "euc-kr");
            BufferedReader reader = new BufferedReader(isr);
            String result = "";
            while(true) {
                String data = reader.readLine();
                if(data == null) break;
                result += data + "\n";
            }
            System.out.println(result);
        } catch (MalformedURLException e) {
            throw new RuntimeException(e);
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

 

▶try ~ catch ~ finally 코드 진행

 

 

728x90
반응형
Contents

📝 포스팅 주소를 복사했습니다 📝

이 글이 도움이 되었다면 공감 부탁드립니다👍