자바에서 발생하는 오류는 3가지의 오류가 있다.
첫 번째는 구문 오류로써 우리가 코드를 작성할 때 잘못된 방식으로 작성해 컴파일러가 인식하지 못해 프로그램을 만들 수도 없는 치명적이지 않은 오류이다.
두 번째는 논리 오류로써 치명적인 오류이다. 실행에도 문제가 없지만 우리가 흔히 말하는 버그라는 것인데 알아차리기도 힘들어서 피해를 보고 아는 경우가 많다.
이를 방지하기 위해 선 확실한 테스트와 논리적 오류가 없는지 확인을 한 뒤 배포하는 것이 바람직하다.
세 번째는 예외라는 것인데 누군가에게만, 어떤 컴퓨터에서만, 어떤 상황에서만 예외적으로 발생하는 오류이다.
특정한 상황인데 이 예외는 소프트웨어 안에서는 발생하지 않고 사용하는 쪽에서 발생된다.
이 예외 오류를 처리하기 위해서는 예외를 통보를 받아야 하는데 API에서 우리에게 예외 발생할 수 있는 상황에 대해서 코드를 작성할 때 통보를 해준다.
만약 우리가 중간에 라이브러리를 사용한다면 API로부터 라이브러리, 소프트웨어로 통보를 전달받아야 한다.
위 사진은 만약 사진 파일이 존재하지 않을 경우에 대한 오류이다.
라이브러리가 존재할 때의 이해를 위해 강제적으로 예외를 발생시켜보겠다.
우리는 새로운 라이브러리인 calculator를 생성했다.
calculator안에서 static메서드인 add에서는 x값이 100 이상일 때 예외를 던지게 되는데 그때 만들어진 클래스는 Exception을 상속받기 위한 클래스로써 캡슐화의 의미가 아닌 클래스이다.
클래스를 생성하게 되면
예외를 어떻게 처리할 것인지 묻게 되는데 여기서는 상위로 예외를 던지게 해 보겠다.
예외를 던지게 되면 자신을 사용하는 프로그램이 예외를 책임지도록 add메서드에 throws class가 생성된다
라이브러리를 사용하는 응용프로그램에서 예외에 대한 책임을 묻게된다. 더 상위로 던질것인지 아니면 try catch문을 통해 예외에대한 처리를 직접할것인지 묻는다. 여기선 우리가 직접 처리를 해주겠다.
만약 예외에대한 처리를 catch문에서 메시지를 출력해주되 그 값에 대한 처리 또한 해주어야 잘되지 않을까 합니다.
나머지의 대한 정리를 처리해주는 것은 finally구문입니다
하지만 우리가 자주 사용하는 메서드에서 오류를 지속적으로 잡게 될 경우 코드의 가독성이 많이 떨어질 수 있다.
예외처리에는 두 가지의 처리방법이 있는데
첫 번째는 Exception클래스를 상속받는 컴파일 타임 예외이며 이것은 우리가 예외에 대한 구체적인 로직을 작성해주어야 한다.
두 번째는 RunRuntimeException클래스를 상속받는 런타임 예외인데 이것은 프로그램이 실행돼 봐야 알 수 있는 오류이다.
하지만 버그를 발생시킬 수 있기 때문에 빈번한 사용은 하지 않는다.
'웹 프로그래밍 기초 > 자바기반의 웹&앱 응용SW 개발자' 카테고리의 다른 글
자바기반의 웹&앱 응용 SW개발자 양성과정 25일차 -43 (0) | 2020.04.01 |
---|---|
자바기반의 웹&앱 응용 SW개발자 양성과정 24일차 -42 (0) | 2020.03.26 |
자바기반의 웹&앱 응용 SW개발자 양성과정 23일차 -40 (0) | 2020.03.25 |
자바기반의 웹&앱 응용 SW개발자 양성과정 23일차 -39 (0) | 2020.03.25 |
자바기반의 웹&앱 응용 SW개발자 양성과정 22일차 -38 (0) | 2020.03.24 |
댓글