JAVA 18(1) 예외처리의 기본

2021. 8. 5. 01:40·Programming/Java

예외처리의 기본

프로그래머의 실수가 아니라 사용자의 실수가 예외다. 즉, 사용자가 기대하지 못했던 상황을 예외라고 한다. 그러한 예외 상황을 프로그래머의 처리를 예외처리라고 한다.

 

 

예외 상황을 알리기 위한 클래스

java.lang.ArithmeticException

수학 연산에서의 오류 상황을 의미하는 예외 클래스

java.util.InputMismatchExecption

클래스 Scanner를 통한 값의 입력에서의 오류 상황을 의미하는 예외 클래스

 

위 2가지 클래스는 내가 직접 생성하려는 클래스가 아니라, JVM이 특정 예외 상황을 알리기 위해 정의한 클래스이다.

 

try~catch

예외의 처리를 위한 코드를 별도로 구분하기 위해 디자인된 예외처리 알고리즘이다. try블록에는 예외가 발생할 수 있는 코드가 위치하고, catch에는 try에서 감지한 예외를 처리하는 코드가 있다.

 

참고!
예외 처리문이 없으면, 예외 발생 시 프로그램이 종료된다.

주의!
예외 처리 후, 다시 예외 발생 코드로 돌아가지 않는다.

 

예외 처리 후, catch문 뒤의 코드부터 실행한다. 그럼 try문 안의 예외 이후의 코드는 왜 건너뛸까? 입력 오류에 대한 예외 관점에서 보았을 때 try문의 코드는 하나의 작업이다. 따라서, 예외 발생 이후의 코드는 예외 발생으로 인해 쓸모 없는 작업이 될 것이다.

 

예외가 발생하면, try블록에 가까운 catch블록부터 순서대로 검사한다.

 

자바 7이후 둘 이상의 예외를 묶을 수 있게 됐다.

'Programming > Java' 카테고리의 다른 글

JAVA 19(1) 메모리 모델  (0) 2021.08.05
JAVA 18(2) 예외 클래스 Throwable  (0) 2021.08.05
JAVA 17(3) 인터페이스의 static 메소드  (0) 2021.08.04
JAVA 17(2) 인터페이스의 기본 접근 지정자  (0) 2021.08.04
JAVA 17(1) 인터페이스  (0) 2021.08.04
'Programming/Java' 카테고리의 다른 글
  • JAVA 19(1) 메모리 모델
  • JAVA 18(2) 예외 클래스 Throwable
  • JAVA 17(3) 인터페이스의 static 메소드
  • JAVA 17(2) 인터페이스의 기본 접근 지정자
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    LinkedList
    minimum number of arrows to burst balloons
    Thread
    algorithm
    트랜잭션
    BFS
    socar
    OS
    제네릭
    @JsonProperty
    운영체제
    Generic
    Reorder List
    lower bounded wildcards
    wildcards
    Process
    @JsonNaming
    준영속 엔티티
    AuthenticationSuccessHandler
    RR
    Oauth2
    디자인 패턴
    clone graph
    추상화 클래스
    pacific atlantic water flow
    fcfs
    Climbing Stairs
    JSCode
    runner 기법
    rotting oranges
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
JAVA 18(1) 예외처리의 기본
상단으로

티스토리툴바