본문 바로가기
Programming/Java

JAVA try catch 구문 exception

by d-e-v-j 2024. 8. 29.
반응형

오늘 Spparow를 통해서 취약점 분석을 진행해봤다. 역시나 .. 취약점이 많이 나오더라 많이 나온것중 하나다.

exception에 대한 취약점이다. 다들 Exception을 특정화 하지 않고 대충 기본 exception만 처리해서 try catch 구문을 만든다. 

그러다보면 exception 발생시 원인을 찾기도 어렵고 그 exception 을 미리 예방하는 방법을 주입하기도 어렵다.

그래서 사용할 수 있는 exception 들에 대해 정리해 보려고 한다.


Java에서 사용하는 Exception 은 두개로 나뉜다.

1. Checked Exception : 컴파일 시점에서 확인되는 예외로, 개발자가 반드시 예외 처리를 해야 한다. 이러한 예외는 Exception 하위 클래스 중에서 RuntimeException을 제외한 예외들이다.

 

2. Unchecked Exception (Runtime Exception) : 실행 시점에서 발생하는 예외로, 컴파일 시점에서 확인되지 않는다. RuntimeException 클래스 및 그 하위 클래스들에 속하는 예외가 이에 해당한다. 개발자가 예외처리를 반드시 해야 하지는 않지만, 오류를 방지하기 위해 적절히 처리하는 것이 좋다.

 

대표적인 Exception 클래스

Checked Exception

  1. IOException: 입출력 작업에서 발생하는 예외 (예: 파일을 읽거나 쓸 때).
  2. SQLException: SQL 작업에서 발생하는 예외 (예: 데이터베이스 쿼리 실행 시).
  3. ClassNotFoundException: 클래스를 찾지 못할 때 발생하는 예외.
  4. InstantiationException: 클래스의 인스턴스를 생성할 수 없을 때 발생하는 예외.
  5. IllegalAccessException: 접근이 불가능한 클래스, 메서드, 필드에 접근할 때 발생하는 예외.
  6. FileNotFoundException: 파일이 존재하지 않을 때 발생하는 예외.
  7. InterruptedException: 스레드가 대기 상태에 있을 때, 다른 스레드가 인터럽트하여 깨운 경우 발생하는 예외.

Unchecked Exception (Runtime Exception)

  1. NullPointerException: 참조하려는 객체가 null일 때 발생하는 예외.
  2. ArrayIndexOutOfBoundsException: 배열의 인덱스가 범위를 벗어날 때 발생하는 예외.
  3. ArithmeticException: 산술 연산에서 오류가 발생할 때 (예: 0으로 나누기).
  4. ClassCastException: 객체를 잘못된 타입으로 캐스팅하려 할 때 발생하는 예외.
  5. IllegalArgumentException: 메서드에 부적절한 인자를 전달했을 때 발생하는 예외.
  6. NumberFormatException: 문자열을 숫자로 변환할 때, 형식이 올바르지 않으면 발생하는 예외.
  7. IndexOutOfBoundsException: 리스트나 배열의 인덱스가 범위를 벗어났을 때 발생하는 예외.
  8. UnsupportedOperationException: 실행할 수 없는 메서드를 호출할 때 발생하는 예외.

이 외에도 Java에는 다양한 예외 클래스가 존재하며, 사용자는 자신의 필요에 맞게 사용자 정의 예외를 만들 수도 있다. 예외 처리는 프로그램의 안정성과 가독성을 높이는 중요한 요소이므로, 적절한 예외 처리를 통해 예기치 않은 오류를 효과적으로 관리해보자.

728x90
반응형
LIST