Java - Exception

개미는뚠뚠·2024년 4월 7일
0

java

목록 보기
11/11

🚀Exception

Exception(예외)란 프로그래밍 에러 중 런타임에러에 해당되며 프로그램이 실행하는 도중에 에러가 발생해서 잘못된 결과를 얻거나, 혹은 외부적인 요인으로 프로그램이 비정상적으로 작동할 때 사용한다.

이 런타임 에러는 설계 미숙으로 인한 논리적 오류로 발생하는 경우가 대부분이라 개발자가 역추적 통한 원인을 파악해야한다.

많이 알려진 대응코드로 자바의 예외 처리 문법인 (try - catch) 가 있다.

try{
    //1. 에러가 발생할 수 있는 코드
    throw new Exception(); //강제 에러 출력 
}catch (Exception e){
    //2. 에러시 수행
     e.printStackTrace(); //오류 출력(방법은 다양하다.)
     throw e; //최상위 클래스가 아니라면 무조건 사용
}finally{
    //예외 발생 여부와 상관없이 무조건 수행
} 

🚀try-catch문 플로우 

case1. 예외가 try 블럭에서 발생한 경우

  • 한 예외와 일치하는 catch 문이 있는지 확인. 
  • 일치하는 catch 문이 있다면 catch 블럭 내의 문장을 모두 실행하고 try catch 문을 빠져나가서 그다음 문장을 수행.
  • 일치하는 catch 문이 없다면 예외는 처리되지 못하고 에러 발생.

case2. 예외가 try 블럭 안에서 발생하지 않은 경우

  • catch블럭을 거치지 않고 전체 try-catch문을 빠져나가서 수행을 계속한다. 

case3. 예외가 try 블럭 밖에서 발생한 경우

  •  예외는 아무 처리되지 못한 채 에러 발생.

🚀예외 종류

  1. NumberFormatException
    : 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환시 발생

  2. ArithmeticException
    : 정수를 0으로 나눌경우 발생

  3. ArrayIndexOutOfBoundsExcetion
    : 배열의 범위를 벗어난 index를 접근할 시 발생

  4. ClassCastExcetion
    : 변환할 수 없는 타입으로 객체를 반환 시 발생

  5. NullPointException
    : 존재하지 않는 레퍼런스를 참조할때 발생

  6. IllegalArgumentException
    : 잘못된 인자를 전달 할 때 발생

  7. IOException
    : 입출력 동작 실패 또는 인터럽트 시 발생

  8. OutOfMemoryException
    : 메모리가 부족한 경우 발생

🚀개인 참고용

Exception e

모든 예외클래스는 Exception 클래스에 속한다.그러므로 catch블럭 괄호에 Exception e 를 선언해 놓으면 어떤 종류의 예외가 발생하더라도 이 catch블럭에 의해서 처리가 된다.

e.getMessage()

Exception의 유형을 알려주지 않으며, 간단하게 왜 에러가 발생하였는지 내용만 알려줌.

e.toString()

Exception의 유형을 알려주고, 왜 에러가 발생하였는지 내용도 알려줌.

e.printStackTrace()

Exception의 유형을 알려주고, 왜 에러가 발생하였는지 내용도 알려줌.
추가적으로 어느 라인에서 에러가 났는지 정보도 알려준다.

0개의 댓글