예외와 예외 클래스

hwakyoung·2023년 1월 20일
0

java

목록 보기
3/7
post-thumbnail

📌예외와 예외 클래스

예외(exception)이란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 이야기 한다.


예외에는 일반예외(exception)과, 실행예외(runtime exception) 2개가 있다.


📌일반예외와 실행 예외 클래스는 RuntimeException 클래스를 기준으로 구별
📌RuntimeException의 하위 클래스가 아니면 일반 예외 클래스이고, 하위 클래스이면 실행예외 클래스이다.
📌클래스 상속 관계에서 부모(조상)에 RuntimeException이 있다면 샐행 예외 클래스 이다.



📌예외

🍀사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다.

🍀예외가 발생하면 프로그램은 곧바로 종료 == 에러와 비슷하다.
그러나 예외는 예외 처리(exception handling)를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다.


📌예외 클래스

🍀자바에서 예외 클래스로 관리
🍀JVM은 프로그램을 실행하는 도중에 예외가 발생하면 해당 예외 클래스로 객체 생성.

🍀그리고 나서 예외 처리 코드에서 예외 객체를 이용할 수 있도록 함.
🍀모든 예외 클래스는 java.lang.Exception 클래스를 상속받음.


📌일반 예외

🍀 컴파일러 체크 예외라고도 한다.

🍀 프로그램 실행 시 예외 발생 확률 높음 ==> 자바 소스를 컴파일 하는 과정에서 해당 예외 처리 코드가 있는지 검사.

🍀만약 예외 처리 코드가 없다면 에러발생!


📌실행 예외

🍀컴파일러 넌 체크 예외라고도 하는데, 실행 시 예측할 수 없는 에러가 갑자기 발생! ==> 컴파일하는 과정에서 예외 처리 코드가 있는지 검사하지 않음.


📌예외 처리

자바 컴파일러는 소스 파일을 컴파일 할 때 일반 예외가 발생할 가능성이 잇는 코드를 발견하면 컴파일 에러를 발생시켜 개발자가 강제적으로 예외 처리 코드를 작성 요구.


📌예외 처리

🍀프로그램에서 예외가 발생했을 경우 프로그램의 갑작스러운 종료를 막고, 정상 실행을 유지할 수 있도록 처리


📌try-catch-finally 블록

🍀 생성자 내부와 메소드 내부에서 작성되어 일반 예외와 실행 예외가 발생할 경우 예외 처리를 할 수 있도록 해줌.


📌다중 catch 블록

🍀catch 블록이 여러 개라 할지라도 단 하나의 catch 블록만 실행하면 됨.

🍀 why? ==> try 블록에서 동시다발적으로 예외가 발생하지 않고, 하나의 예외가 발생하면 즉기 실행을 멈추고 해당 catch 블록으로 이동함.


📌throws 키워드

🍀 메소드 선언부 끝에 작성되어 메소드에서 처리하지 않은 예외를 호출한 곳으로 떠넘기는 역할.

🍀 throws 키워드 뒤에는 떠넘길 예외 클래스를 쉼표 로 구분해 나열

profile
fire-irror

0개의 댓글