JAVA

▶︎예외◀︎

chojdsj 2023. 5. 14. 22:26
728x90
예외(Exception)

 

 

* 오류의 종류

 

  • 컴파일 에러 : 프로그램의 실행을 막는 소스코드상의 문법에러. 소스코드 수정으로 해결. 
  • 런타임 에러 : 프로그램 실행 중 발생하는 에러. 주로 if문 사용으로 에러 처리(ex. 배열의 인덱스 범위를 벗어났거나, 계산식의 오류)
  • 시스템 에러 : 컴퓨터 오작동으로 인한 에러, 소스 코드 수정으로 해결 불가 

 

 - 해결방법 : 소스코드 수정으로 해결 가능한 에러를 예외(Exception)라고 하는데 이러한 예외 상황(예측 가능한 에러) 구문을 처리하는 방법인 예외처리를 통해 해결 

 

 

 

 - 예외의 2가지 종류

 

  * UnChecked Exception : RuntimeException과 자식 예외를 지칭함. 프로그램 수행중 개발자의 코딩 실수 또는 사용자의 잘못된 값 입력으로 흔하게 발생할 수 있는 예외. 예외 처리 구문이 아니라 If문 같은 단순 코드로 해결이 가능  

 

 

  * Checked Exception : RuntimeException과 자식 예외를 제외한 나머지 예외. if문과 같은 단순 코드로 해결이 불가능하여 반드시 예외 처리 구문을 작성해야함 

 

 

try - catch 

 

- try { } : 괄호 내부에 예외가 발생할 가능성이 있는 코드를 작성한 후 시도

 

- catch(예외) { } : try 구문에서 발생한 예외를 잡아내서 처리하여 프로그램이 비정상 종료되지 않도록 함

-->> try 구문안에 예외가 발생할 가능성이 있는 코드를 작성하고 (정수를 입력하는 과정에서 정수가 아닌 문자를 입력했을때 발생할수 있는 InputMismatchException), catch 구문에서 예외를 잡아내고 처리한다. 

 

 

 

Exception 클래스  

 

- 모든 예외의 최상위 부모 

 

- e.printStackTrace() : 발생한 예외의 메소드와 위치에 대한 모든 내용을 출력, 예외 발생 지점 추적

 

 

 

 

Try - catch -  finally 

 

 

- Finally : Try 구문에서 예외가 발생하든말든 무조건 마지막에 수행 

 

 

 

Throw, throws

 

 

   - Throws : 호출한 메소드에게 예외를 던짐 -> 호출한 메소드에게 예외를 처리하라고 위임하는 행위 

 

  - throw : 예외 강제 발생 구문(현재 메소드에 예외를 던짐) 

 

 

 

 

 

Exception과 오버라이딩

 

 

- 오버라이딩 시 throws하는 Exception의 개수와 상관없이 처리범위가 같거나 후손 이여야 함 

 

 

'JAVA' 카테고리의 다른 글

▶︎입출력◀︎  (0) 2023.05.16
▶︎컬렉션◀︎  (0) 2023.05.14
▶︎인터페이스◀︎  (0) 2023.05.10
▶︎다형성◀︎  (0) 2023.05.10
▶︎상속◀︎  (0) 2023.05.03