3. 예외처리
2018. 7. 3. 16:35
에러(error) vs 예외(exception)
프로그램을 돌렸을 때 오작동이나 비정상적으로 종료되는 원인을 오류나 에러라고 합니다. 이 에러는 '컴파일 에러'와 '런타임 에러'로 나눌 수 있는데, 글 자 그대로 컴파일 시 발생하는 에러와 실행 도중에 발생하는 에러를 뜻합니다. 일반적으로 컴파일러가 컴파일 에러를 통해 소스코드의 기본적인 검사를 마친다고 해서 실행 시에도 에러가 발생하는 것은 아닙니다. 실행 도중의 잠재적 오류까지 검사할 수 없기 때문에 컴파일이 잘 이루어졌어도, 실행 도중에 잘못된 결과를 얻거나 비정상 종료가 될 수 있는 것이죠.
자바에서는 실행 시 발생할 수 있는 오류를 '에러(error)'와 '예외(exception)' 두 가지로 구분합니다. 에러는 메모리 부족, 스택오버플로우와 같이 발생하게 되면 복구할 수 없는 심각한 오류이고, 예외는 발생하더라도 수습할 수 있을 정도의 비교적 덜 심각한 오류입니다. 에러는 발생 시 막을 방도가 없지만, 예외는 프로그래머가 예외처리를 통해서 비정상종료를 막을 수 있는 것이죠.
- 에러(error) : 발생 시 수습할 수 없는 심각한 오류
- 예외(exception) : 예외 처리를 통해 수습할 수 있는 덜 심각한 오류
예외처리란?
예외처리란 프로그램 실행 시 발생할 수 있는 예외에 대비하는 것으로 프로그램 비정상종료를 막고 실행 상태를 유지하는 것입니다.
예외처리구문 try catch
public static void main(String[] args)
{
try
{
// 예외 발생 가능성 있는 문장을 적습니다.
} catch (Exception e)
{
// Exception이 발생할 경우 이를 처리하기 위한 문장을 넣습니다.
}
}
기본적인 try catch 구문은 위와 같이 이루어 집니다. try 문에서 Exception 예외가 발생할 경우 catch (Exception e) 로 빠져서 그 안의 실행문을 실행하는 것이죠.
try catch 문의 순서를 이해하기 쉽게 정리해보도록 하겠습니다.
[예외가 try 블럭에서 발생한 경우]
- 발생한 예외와 일치하는 catch 문이 있는지 확인합니다.
- 일치하는 catch 문이 있다면 catch 블럭 내의 문장을 모두 실행하고 try catch 문을 빠져나갑니다.
- 일치하는 catch 문이 없다면 예외는 처리되지 못하고 에러를 발생 시키게 됩니다.
[예외가 try 블럭 밖에서 발생한 경우]
- 예외는 catch 문 안에서 처리되지 못한채 에러가 되어버립니다.
출처: http://itmining.tistory.com/8 [IT 마이닝]
'Get IT Note > Java' 카테고리의 다른 글
6. String, StringBuffer, StringBuilder 의 차이점 (0) | 2018.07.04 |
---|---|
5. 불변객체와 가변객체 (0) | 2018.07.04 |
4. ArrayList와 Array간 변환 (0) | 2018.07.03 |
2. 난수(Random) (0) | 2018.07.01 |
1. 배열 (0) | 2018.07.01 |