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 |