에러(Error) 예외(Exception) 경고(Warning)의 차이점
에러(Error)
Compile error
컴파일 에러는 대부분 문법적 문제(Syntax error)로 인해 발생합니다. 예를 들면 ;나 .을 안 붙였 다던지, 프로그래밍 언어의 정해진 문법을 이용하지 않았을 경우에 생기는 오류입니다.간단한 오타를 예로 들 수가 있습니다.
syntax error
syntax error는 구문 오류라고 합니다. 컴파일 타임 에러라고도 합니다. 이는 코드를 작성하면서 키워드를 잘못 작성하거나, 중요한 구두점을 빠뜨리거나 여는 괄호는 있는데 닫는 괄호가 없는 것과 같은 코드의 문법의 에러인 경우입니다. 문법 오류는 보통 컴파일러가 어떤 줄에서 어떤 이유로 오류가 발생했는지를 알려주기 때문에 찾기는 쉽습니다..
Runtime error 실행 도중 발생하는 오류
컴파일은 성공했지만 실행 파일의 실행 도중 발생되는 오류입니다. 예를 들어, 무한 루프에 빠진 경우, 0 값으로 나누기를 하는 경우, 존재하지 않는 메모리 위치에 접근을 시도하는 경우 등이 있습니다.
Logic error 논리적인 문제로 인해 의도치 않은 결과가 발생하는 오류
컴파일도 성공했고 실행에도 문제가 없지만 의도했던 결과가 나오지 않는 경우입니다. 예를 들어, 어떤 알고리듬을 통해 A라는 결과를 도출하려 했는데 의도치 않게 B라는 결과가 발생되는 경우입니다. 이러한 논리 오류의 경우에는 에러 메시지가 출력되지 않고 전체적인 틀을 봐야하는 경우 때문에 수정하는 것에 어려움이 있을 수 있습니다.
경고(Warning)
Warning는 프로그램 실행은 가능하지만 잠재적인 문제를 가지고 있는 상태를 말합니다. 예를 들어, 선언한 변수를 사용하지 않았거나 하는 경우 입니다. error에 비해서 모호한 경우가 많습니다. 당장은 문제가 생기지 않지만 특별한 경우가 아니라면 수정을 권장하는 부분입니다.
예외(Exception)
프로그래밍에서 마이크로프로세서가 수행 중에 있는 작업이 중단된 상태며, 그 상황을 별도의 루틴을 사용해서 처리하는 방식입니다.
별도의 처리 루틴이 있다는 측면만을 제외하면 예외는 인터럽트(interrupt)의 개념과 비슷합니다.
