■ Exception 간략히

2022. 3. 20. 02:00· 무지성 메모
728x90

참고 : https://joont92.github.io/java/%EC%98%88%EC%99%B8%EC%B2%98%EB%A6%AC/

 

[java] 예외처리

예외란 프로그램 실행 도중 발생하는 문제 상황을 얘기합니다. 따라서 컴파일 시 발생하는 문법적인 오류는 예외의 범주에 포함되지 않습니다. 예를 들면 아래와 같은 상황이 있습니다. 1234public

joont92.github.io

 

Error -> 단순히 예외라고 하기에는 심각한 오류의 상황을 표현하는 예외

 

try~catch문 -> swtich~case문이랑 비슷하게 위에 있는 catch{}문의 조건에 걸리면 밑에 있는 것들을 무시함

                    그렇기 때문에 최상위 예외 클래스인 Exception을 가장 위에 걸쳐 놓으면 좋지 않은 try~catch문이다

 

finally 구문은 예외가 발생하든, 발생하지 않든 항상 실행되는 부분이다.

보통 자원반납 및 로깅처리를한다.


throws 구문의 의미는 throws OOException에서의 OOException이 발생할 경우 그 예외 처리를

자신을 호출한 쪽으로 던져버린다는 의미이다. 처리를 위임한다는 뜻으로 생각하면 된다.

 

main메서드 또한 Exception을 throws할 수 있는데, 그러면 main메서드를 호출한 것은 무엇일까? 

-> JVM(자바가상머신)

가상머신의 예외처리방식
1. e.getMessage() 메서드 호출
2. e.printStackTrace() 메서드 호출 ( 이 메서드는 시스템출력이라 로그에 안찍힘 )
3. 프로그램 종료

 


사용자가 임의로 custom하는 사용자 예외 처리 방식도 있어요!

 


Checked Exception vs Unchecked Exception

Checked Exception은 RuntimeException을 상속하지 않는 모든 예외이다

반드시 try~catch문이나 throws를 통해 처리를 해줘야 한다

항상 문법적으로 체크한다 라는 의미로 생각을 하면 좋을 것 같다.

ex) IOException, SQLException

 

예외 발생시 트랜잭션의 롤백과 관련된 내용이 있는데 

'checked Exception은 트랜잭션을 롤백하지 않고 unchecked Exception은 트랜잭션을 롤백한다'

는 내용이 있다 이는 스프링의 기본 설정에 한정되어 있는 내용임

트랜잭션 롤백 여부는 애초에 사용자가 임의로 조절할 수 있는 부분이라고함

 

 

Unchecked Exception은 RuntimeException을 상속하는 예외이다.

개발자가 부주의한 경우 발생하는 예외들이라 굳이 문법적으로 체크하지 않아도

런타임 과정에서 알아서 잡아줌

해당 예외 처리하는 코드를 작성하는 것은 선택사항임

ex) NullPointerException, IllegalStatementException, Arithmeticexception (/ by zero)

저작자표시 (새창열림)

'무지성 메모' 카테고리의 다른 글

■ 해쉬 알고리즘이 고정된 길이의 암호화길이를 가지는 이유?  (0) 2023.01.13
■ 대문자로만 이루어진 문자인지 판별  (0) 2022.03.19
■ AJAX를 쓰는 이유..?  (0) 2022.03.15
■ Get/ post, put, delete ■ 스프링 기본 파싱 전략  (0) 2022.03.14
■ string클래스의 역순 출력 함수  (0) 2022.03.10
'무지성 메모' 카테고리의 다른 글
  • ■ 해쉬 알고리즘이 고정된 길이의 암호화길이를 가지는 이유?
  • ■ 대문자로만 이루어진 문자인지 판별
  • ■ AJAX를 쓰는 이유..?
  • ■ Get/ post, put, delete ■ 스프링 기본 파싱 전략
배게
배게
백엔드배게 님의 블로그입니다.
배게
백엔드
배게
전체
오늘
어제
  • 분류 전체보기 (430)
    • 알고리즘 풀이 (338)
      • 백준 (167)
      • Codility (22)
      • 프로그래머스 (123)
      • LeetCode (2)
      • CodeForces (9)
      • SWEA (15)
    • 백엔드 (11)
    • Coding existing for (3)
    • 무지성 메모 (40)
    • Debug (30)
    • 자바 (8)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 카카오톡
  • MYSQL
  • 카카오톡 txt파일 정렬
  • 카톡 내보내기한 파일 정렬
  • hibernate
  • 카톡

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
배게
■ Exception 간략히
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.