본문 바로가기
Web Programing/JAVA

JAVA 에러(Error)와 예외(Exception)의 차이

by 기록하는 초보 2024. 2. 6.
반응형

자바 공부 중 에러와 예외의 개념을 제대로 파악하는 것은 프로그래밍 실력 향상하는데 중요한 발판이 됩니다. 흔히 혼동하기 쉬운 이 두 용어에 대해 명확하게 구분하여 알아볼 필요가 있습니다. 에러와 예외의 차이와 에러와 예외를 구분하는 이유에 대해서 알아보겠습니다.

 

에러(Error)와 예외(Exception)의 차이

에러(Error)

에러는 시스템 레벨에서 발생하는 프로그램 코드로 해결될 수 없는 심각한 문제를 의미합니다. 대부분의 에러는 자바 가상 머신(JVM)에서 발생하며, JVM 버그 메모리 부족(OutMemoryError)이나 스택 오버플로(StackOverflowError)와 같은 비정상적인 상황에서 발생합니다. 이러한 에러는 대게 시스템에 무언가 심각한 문제가 있다는 신호이므로, 코드로 대응하기보다는 문제의 원인을 찾아서 해결하는 것이 필요합니다.

예외(Exception)

예외는 프로그램 실행 중 발생할 수 있는 예외적인 조건을 의미하며, 개발자가 코드 내에서 적절히 처리할 수 있습니다. 예외는 또한 체크된 예외(checked exceptions)와 체크되지 않은 예외(unchecked exceptions)로 나뉘며, 각기 다른 방식으로 처리됩니다. 런타임 오류는 대표적인 체크되지 않은 예외에 해당하며, NullPointException이나 ArryIndexOutBoundsException과 같은 오류를 가리킵니다. 체크된 예외의 경우 IOException처럼 반드시 예외 처리를 해야 하는 경우입니다.

에러와 예외의 차이점

에러는 시스템에 의해 발생하는 비가역적인 심각한 문제이며, 예외는 코드 실행 중에 발생하는 예측 가능하고, 대응 가능한 문제입니다. 에러는 개발자가 코드로 해결할 수 없는 문제들이고, 예외는 개발자가 예상하고, 적절히 처리할 수 있는 문제들입니다. 따라서 에러는 대부분 시스템 차원의 개입이 필요한 반면, 예외는 개발자가 프로그램 내에서 처리할 수 있는 이슈입니다. 

에러(Error)와 예외(Exception)의 구분 이유

에러와 예외를 구분하는 이유는 프로그램을 개발하고 유지보수하는 과정에서 예상치 못한 상황에 대처하고, 시스템의 안정성을 확보하기 위해서입니다. 에러는 개발자가 코드로 해결할 수 없는 심각한 문제로 인식하여 시스템 차원에서의 개입이 필요한 반면, 예외는 예상 가능하며 처리 가능한 문제로써 코드를 통한 예외처리로 프로그램의 견고함을 증진시킬 수 있습니다. 오류 예외처리(Exception Handling)는 효율적인 방법으로 프로그래밍의 안정성을 높이고 사용자에게 명확한 피드백을 제공하는 메커니즘을 마련하는 것을 목표로 합니다. 따라서 개발 과정에서 이러한 에러와 오류를 정확히 이해하고 적절하게 처리하는 것은 매우 중요한 능력 중 하나라고 할 수 있습니다.

반응형