<aside> 💡 예외처리란 프로그램 실행 흐름상 오류가 발생했을 때 그 오류를 대처하는 방법

</aside>

프로그램 오류

프로그램 실행 중 어떤 원인에 의해 프로그램이 해당 상황에 대처를 하지 못할 경우 비정상적으로 종료되거나 에러 팝업창이 뜨는 경우가 있다. 이런 상황을 프로그램 오류라 한다.

발생시점에 따른 에러 분류

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d47e2c3a-fae2-44ef-a57f-966c9ea4f20f/Untitled.png

Compile Error: 컴파일 시점에서 발생하는 에러로 소스코드를 컴파일러가 컴파일하는 시점에서 소스의 오타나 잘못된 구문, 자료형 체크등 검사를 수행하는데 여기서 발생하는 에러를 컴파일 에러라 하며 이 시점에서 발생하는 문제들을 수정 후 컴파일을 성공적으로 마칠경우 클래스 파일(*.class) 파일이 생성된다.

@Test
void compileError() {
    **STring** helloStr = "hello";

    System.out.println("helloStr = " + helloStr);
}

Runtime Error: 프로그램 실행 시점에서 발생하는 에러로 컴파일러는 컴파일 시점에서 문법 오류나 오타같은 컴파일시점에서 예측가능한 오류는 잡아줄 수 있지만, 실행 중 발생할 수 있는 잠재적인 에러까지 잡을 순 없다.

그래서 컴파일은 문제없이 완료되어 프로그램 실행이되고 실행도중 의도치않은 동작에 대처하지못해 에러가 발생할 수 있다.

void stringToInt(String str) {
    int i = Integer.parseInt(str);
    System.out.println("str parsing result = " + i);
}

💬런타임 시점에서 발생하는 오류는 에러(error)와 예외(exception)으로 나뉜다.