컴파일 에러 컴파일 에러는 소스 코드를 컴파일할 때 발생하는 에러입니다. 컴파일러는 코드의 구문 및 타입 에러를 검출하고, 이를 해결하기 전에 프로그램을 컴파일하지 않습니다. 컴파일 에러 특징 발생 시점 : 소스 코드를 컴파일할 때 발생합니다. 즉, 프로그램을 컴파일하기 전에 확인할 수 있는 에러입니다. 원인 : 주로 구문 오류, 변수명 오류, 타입 불일치 등과 같은 코드의 오타나 잘못된 사용으로 인해 발생합니다. 해결 방법 : 컴파일 에러가 발생하면 개발자는 오류 메시지를 분석하여 해당 부분을 수정해야 합니다. 런타임 에러 런타임 에러는 프로그램이 실행되는 동안 발생하는 오류로, 프로그램의 특정 시점에 발생하기 때문에 주의가 필요한 에러입니다. 런타임 에러 특징 발생 시점 : 프로그램이 실행되는 동안에..
예외 종류 분류 : 하나의 블럭 안에서 모든 Exception을 처리 하지말고 종류별로 분류를 합니다. 예외 발생 시점과 위치 결정 : 어느 부분에 예외가 발생했는지 판단해서 예외 처리를 결정합니다. 다양한 예외 처리 : 상황에 따라서 예외 처리를 합니다. 백업 및 로그 등 다양합니다. 일관된 예외 메시지 : 예외 메시지만 보고 문제의 원인과 상황을 알 수 있게 명확하게 표현합니다. 에러 코드 매핑 : 고유한 에러 코드를 매핑하여 명확하게 표현합니다. 로깅 처리 : 예외 처리가 발생할 시 적절한 로깅 처리를 하여 상세 정보를 남기는 것이 중요합니다. 사용자 지정 예외 : 커스텀 예외를 만들때 이름뒤에 Exception 단어 추가합니다.
JAVA 7부터 try-with-resources문이 도입되었습니다. try-with-resources를 이용하여 자원을 관리하고 해제하는데 사용되는 코드들이 간소화되었습니다. 자원을 사용한 후 자동으로 닫히도록 하여 메모리 누수와 관련된 문제를 방지해줍니다. try-with-resources 구조 try (자원 초기화) { // 자원 사용 } catch (예외 클래스 e) { // 예외 처리 } 자원 초기화에 사용된 객체들에 대해서 try가 종료될 때 자동으로 close() 메서드를 호출하여 자원을 해제해줍니다. 해당 객체는 Autocloseable 인터페이스를 구현한 클래스의 인스턴스입니다. try-with-resources 예제 // 다중 자원 사용 가능 try (FileReader reader =..
throw throw 문은 개발자가 직접 예외를 발생시키는 문법입니다. 프로그램의 특정 상황에서 개발자가 예외를 명시적으로 발생시키는데 사용됩니다. throw 활용 예외 정의 : 특정 상황에 대응하기 위해 개발자가 직접 예외 클래스를 정의하고 이를 활용할 수 있습니다. 데이터 유효성 검증 : 데이터 유효성 검증이 실패한 경우 throw 문을 사용하여 예외를 발생시키고, 이를 호출하는 곳에서 적절한 예외 처리를 수행할 수 있습니다. throws 메서드 선언부에 throws를 사용하여 해당 메서드가 처리하지 않고 상위 호출자로 예외를 전달하는 방식을 지원합니다. throws 활용 예외 처리의 분리 : 메서드 내부에서 발생한 예외를 상위 호출자에게 전달함으로써, 호출한 곳에서 예외 처리를 수행해야 합니다. 다..
finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 블록입니다. finally 구조 try { // 코드 } catch (Exception e) { // 예외 처리 } finally { // 항상 실행되는 코드 } 위 코드에서 try 블록에서 예외가 발생하지 않으면, finally 블록이 실행됩니다. 만약 try 블록에서 예외가 발생하면, catch 블록이 실행되고, 그 다음으로 finally 블록이 실행됩니다. finally 블록의 용도 리소스 관리 : 파일을 열거나 데이터베이스 연결을 할 때, 리소스를 사용하게 됩니다. 이때, 리소스를 반납하지 않으면 누수가 발생하여 다른 작업을 수행할 수 없습니다. 중첩된 try-catch-finally 구조 try { try { FileInputStre..
예외(Exception)는 프로그램 실행 도중 발생하는 예기치 않은 상황이나 오류를 가리키는 프로그래밍 용어입니다. 프로그램이 실행 중에 예외가 발생하면, 일반적인 흐름을 방해하거나 비정상적인 동작을 유발할 수 있습니다. 예외는 주로 논리적인 오류나 외부 요인으로 인한 문제로 인해 발생하며, 이를 처리하는 예외 처리 메커니즘이 프로그램의 신뢰성과 안정성을 강화하는 역할을 합니다. 예외 처리 목적 비정상 종료 방지 오류 메시지 제공 프로그램의 흐름 제어 예외 처리 장점 안정성과 신뢰성 향상 예외 상황 코드 분리로 유연성 향상 디버깅과 로깅 예외 종류별 대응 예외의 종류 checked 예외 : 컴파일러에 의해 체크되는 예외로, 프로그래머가 반드시 처리해야 하는 예외입니다. FileNotFoundExcepti..