728x90

[오류]

Java에서 오류는 크게 두 가지로 나눌 수 있다.

컴파일 오류와 런타임 오류이다.

 

1. 컴파일 오류

int num = "String";

코드에 문제가 있어 프로그램이 실행 되지 않은 것을 말한다. 

 

정수 타입 num에 문자열이 들어가려 하면 오류가 날 것이다.

이처럼 코드에 문제가 있어 실행이 되지 않는 것을 컴파일 오류라고 한다.  

 

2. 런타임 오류 

int[] arr = {1, 2, 3};
int arrNum = arr[3];

컴파일은 되지만 실행되는 과정에서 문제가 발생하는 것을 말한다.

 

위 코드처럼 코드에서 작성은 되지만 실행 시켜 보면 인덱스의 범위를 벗어났기 때문에

ArrayIndexOutOfBounds 오류가 날 것이다. 

 

또, 런타임 오류에는 error(에러)와 exception(예외)로 나눌 수 있다.

에러는 메모리 부족이나 스택 오버 플로우와 같은 것을 말하며 작성한 코드로 해결 할 수 없다. 

예외는 NullPointException / ArrayIndexOutOfBoundsException 같은 것들을 말하며 작성한 코드로 해결 할 수 있다.

 

[예외 처리 사용방법]

예외가 발생 하였을때 java에서는 try - catch로 예외 처리를 하거나 throw를 통해 처리할 수 있다. 

 

1. try - catch문

try{

}catch(Exception e){

}finally{

}
  • try 블록에서는 예외가 발생할 수있는 코드를 작성한다.  
  • catch 블록은 예외가 발생했을 때 실행된다. 
    • printStackTrace() 혹은 getMessage()로 에러 메세지를 확인할 수 있다.
    • catch 블록은 여러개 사용할 수 있으며
    •   ArrayIndexOutOfBoundsException, Exception 등 다양한 예외 유형을 넣어 예외 처리할 수 있다. 
  • fianlly블록은 예외가 발생해도 하지 않아도 무조건 실행되는(수행되어야 하는)  블록이다.
  • try - catch 블록은 중첩해서 사용도 가능하다.

 

2. throw 문

public static void main(String[] args) {
    try{
        System.out.println(3 / 0);
        throw new Exception("잘못된 계산 입니다.");
    } catch(ArithmeticException e){
        e.printStackTrace();
    }
}


public static num(int a, int b) throws Exception{
	// 코드..
}
  • throw는 예외를 강제로 발생시킬때 사용된다.
  • 예외가 발생할 경우, 예외 객체를 생성하고 예외를 호출자에게 던진다.
  • throw는 위와 같이 두 가지 방식으로 사용할 수 있고 catch 블록에서 예외를 다시 던질 때 사용될 수 있다.   
728x90

'Java' 카테고리의 다른 글

스레드(Thread)  (0) 2023.06.15
파스타 집 대기 알림 프로그램 만들기  (0) 2023.06.14
박물관 입장료 프로그램  (0) 2023.06.13
스트림(Stream)  (0) 2023.06.13
함수형 인터페이스 (Functional Interface)  (0) 2023.06.13

+ Recent posts