반응형
try와 catch문은 예외처리를 할 때 사용하는 구문이다.
1. 예외처리?
- 프로그램 실행 중 오류, 예외(Exception)이 발생한 경우 프로그램이 강제종료 되지 않고 정상 처리될 수 있게 하는 방법
2. try-catch-finally 예시
<java />try{ //예외가 발생할 수 있는 코드 }catch(Exception exception){ //Exception이 발생했을때 처리하기 위한 코드를 입력 //보통 예외 메세지를 출력하고 로그로 남긴다. //exception은 참조 변수를 의미 }catch(Exception2 exception2){ //Exception2가 발생했을때 처리하기 위한 코드 입력 }finally{ //예외 발생과 관계 없이 반드시 실행되는 코드를 넣는다 }
예제를 보면 알 수 있듯이 try에 코드를 입력하고, 예외상황에 따라 catch문이 동작한다.
예외가 발생하지 않으면 try->finally문만 실행되고, 예외 발생시 try->catch->finally 순으로 실행된다.
마치 if, if-else, else와 비슷한 느낌같다.
3. 예외정보 메소드
예외가 발생한 정보는 getMessage()와 printStackTrace()로 확인할 수 있다.
<java />try{ // 실행할 코드 }catch(Exception exception){ exception.printStackTrace(); // 예외 발생 위치와 내용 반환 System.out.println("예외 내용 : "+exception.getMessage()); //예외 내용 반환 }finally{ // 실행할 코드 }
4. 예외 강제 발생
예외는 throw 키워드를 사용해 인위적으로도 발생시킬 수 있다.
<java />try{ throw new Exception(); }catch(Exception e){ //예외처리할 코드 입력 }
throw new 예외 명(); 을 입력해 예외를 발생시킬 수 있다.
5. 예외 던지기
예외가 발생할 가능성이 있는 메소드를 호출한 쪽으로 예외를 처리할때 throws 키워드를 사용한다.
<java />public void test1(){ try{ test2(); }catch(Exception exception){ 예외처리할 내용 } } public void test2() throws Exception{ throw new Exception("임의로 발생한 예외"); }
이렇게 되면 test2 메소드를 부른 test1에서 예외를 처리하게 된다.
반응형
'Develop > Java' 카테고리의 다른 글
[Java] Lock에 대해서 (0) | 2023.07.19 |
---|---|
[Java] 싱글톤 패턴 : Thread safe & DCL (0) | 2023.07.16 |
[Java] this. 의미 (0) | 2023.06.03 |
[Java] Concurrent HashMap과 Concurrent List (0) | 2023.05.29 |
[Java] Atomic과 CAS(Compare and swap) (0) | 2023.05.29 |