즐거운프로그래밍

[자바] 예외(Exception)

수수께끼 고양이 2023. 11. 14. 11:37
728x90
반응형

 

예외의 발생

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

// 예외의 발생
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("나없는파일"));
        br.readLine();
        br.close();
    }
}

 


예외 처리하기

// 예외 처리하기
public class Main {
    public static void main(String[] args) {
        int c;
        try {
            c = 4/0;
        } catch (ArithmeticException e) {
            c=-1; // 예외가 발생하여 이 문장이 수행됨
        }
    }
}

 

 


finally : 예외가 일어나도 반드시 실행되야 하는 부분에 사용

// finally : 예외가 일어나도 반드시 실행되야 하는 부분에 사용
public class Main {
    public void shouldBeRun() {
        System.out.println("ok thanks");
    }
    public static void main(String[] args) {
        Main sample = new Main();
        int c;
        try {
            c = 4/0;
        } catch (ArithmeticException e) {
            c=-1;
        } finally {
            sample.shouldBeRun();
        }
    }
}

 

 


 

RuntimeException : 실행시 발생하는 예외

class FoolException extends RuntimeException {
}
public class Main {
    public static void saynick(String nick) {
        if("바보".equals(nick)) {
            throw new FoolException();
        }
        System.out.println("당신의 별명은 "+nick+" 입니다.");
    }
    public static void main(String[] args) {
        Main main = new Main();
        main.saynick("바보");
        main.saynick("야호");
    }
}

 


Exception

class FoolException extends Exception {
}

public class Main {
    public void sayNick(String nick) {
        try {
            if("바보".equals(nick)) {
                throw new FoolException();
            }
            System.out.println("당신의 별명은 "+nick+" 입니다.");
        }catch(FoolException e) {
            System.err.println("FoolException이 발생했습니다.");
        }
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.sayNick("바보");
        main.sayNick("야호");
    }
}

 

 

 

728x90
반응형

'즐거운프로그래밍' 카테고리의 다른 글

[자바] 스레드(Thread) 예제  (0) 2023.11.14
[자바] 스레드(Thread)  (1) 2023.11.14
[자바] 싱글톤 패턴(singleton)  (0) 2023.11.14
[자바] 다형성(polymorphism)  (0) 2023.11.13
[자바] 인터페이스(interface)  (0) 2023.11.13