출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]
  • if else와 달리 try-catch는 블럭내에 포함된 문장이 하나여도 {} 를 생략할 수 없다.
  • try 블럭 다음에는 여러 종류의 예외를 처리할 수 있도록 여러개의 catch블럭을 사용할 수 있다.
  • catch 내에 또 다른 try-catch 블럭을 사용할 수 있는데 이때는 다음과 같이 변수 e를 중복해서 사용할 수 없다.
  • 하나의 try 문에서 여러 개의 예외가 발생할 수 있지만 동시에 발생하지는 않음
  • 하나의 예외가 발생하면 즉시 try 블록의 실행을 멈추고 해당 catch 블록으로 이동
  • 예외 발생 여부와 관계없이 무조건 수할 실행문이 있다면 try~catch 문에 finally 블록 추가
  • 다중 catch 블록일 때 try 블록에서 예외가 발생하면 발생한 예외를 catch 블록 순서대로 비교
  • 앞에 있는 catch 블록의 예외 객체가 나중 catch 블록 예외 객체의 부모라면 앞에 있는 catch 블록이 먼저 가로챔 -> 컴파일러는 오류를 발생시킴
  • 구체적인 예외를 먼저 처리해야 함.

 

  • printStackTrace(): 예외발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메시지를 화면에 출력
  • getMessage(): 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.

Try-catch 문의 실행순서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
class ExceptionEx {
    public static void main(String args[]) { // 0으로 나눠서 고의로 ArithmeticException을 발생시킨다.
        System.out.println("try~catch 실행 순서");
        System.out.println(1);
        System.out.println(2);
        try {
            System.out.println(3);
            System.out.println(0 / 0);
            System.out.println(4); // 실행되지 않는다.
        } catch (ArithmeticException ae) {
            System.out.println(5);
        } // try-catch의 끝
        System.out.println(6);
    } // main메서드의 끝
}


cs

rebeccacho.gitbooks.io/java-study-group/content/chapter8.html

 

Chapter 8 예외처리(Exception Handling) | Java Study Group

 

rebeccacho.gitbooks.io

butter-shower.tistory.com/87

 

[Java] 예외처리 - try~catch 문, throws문, 예외의 종류

오류의 종류 에러 (Error) 개발자가 해결할 수 없는 치명적인 오류 하드웨어의 잘못된 동작 또는 고장으로 인한 오류 에러가 발생되면 프로그램 종료 정상 실행 상태로 돌아갈 수 없음 예외 (Excepti

butter-shower.tistory.com

'JAVA > basic' 카테고리의 다른 글

generic / 제네릭  (0) 2020.10.22
예외처리 / Exception  (0) 2020.10.21
예외처리 / throw  (0) 2020.10.21
인터페이스 / interface / implements  (0) 2020.10.20
추상클래스 / abstract class  (0) 2020.10.20
오버라이딩 Override / Overriding & 다형성  (0) 2020.10.16
상속 / extends  (0) 2020.10.15

+ Recent posts