본문 바로가기
웹 프로그래밍 기초/자바기반의 웹&앱 응용SW 개발자

자바기반의 웹&앱 응용 SW개발자 양성과정 24일차 -41

by oncerun 2020. 3. 26.
반응형

 

자바에서 발생하는 오류는 3가지의 오류가 있다.

 

첫 번째는 구문 오류로써 우리가 코드를 작성할 때 잘못된 방식으로 작성해 컴파일러가 인식하지 못해 프로그램을 만들 수도 없는  치명적이지 않은 오류이다.

두 번째는 논리 오류로써 치명적인 오류이다. 실행에도 문제가 없지만 우리가 흔히 말하는 버그라는 것인데 알아차리기도 힘들어서 피해를 보고 아는 경우가 많다. 

이를 방지하기 위해 선 확실한 테스트와 논리적 오류가 없는지 확인을 한 뒤 배포하는 것이 바람직하다.

세 번째는 예외라는 것인데  누군가에게만, 어떤 컴퓨터에서만, 어떤 상황에서만 예외적으로 발생하는 오류이다.

특정한 상황인데 이 예외는 소프트웨어 안에서는 발생하지 않고 사용하는 쪽에서 발생된다.

 

이 예외 오류를 처리하기 위해서는 예외를 통보를 받아야 하는데 API에서 우리에게 예외 발생할 수 있는 상황에 대해서 코드를 작성할 때 통보를 해준다. 

만약 우리가 중간에 라이브러리를 사용한다면 API로부터 라이브러리, 소프트웨어로 통보를 전달받아야 한다.

위 사진은 만약  사진 파일이 존재하지 않을 경우에 대한 오류이다. 

 

 

라이브러리가 존재할 때의 이해를 위해 강제적으로 예외를 발생시켜보겠다.

우리는 새로운 라이브러리인 calculator를 생성했다. 

calculator안에서 static메서드인  add에서는 x값이 100 이상일 때 예외를 던지게 되는데 그때 만들어진 클래스는 Exception을 상속받기 위한 클래스로써 캡슐화의 의미가 아닌 클래스이다.

클래스를 생성하게 되면 

예외를 어떻게 처리할 것인지 묻게 되는데 여기서는 상위로 예외를 던지게 해 보겠다.

예외를 던지게 되면 자신을 사용하는 프로그램이 예외를 책임지도록 add메서드에 throws class가 생성된다

라이브러리를 사용하는 응용프로그램에서 예외에 대한 책임을 묻게된다. 더 상위로 던질것인지 아니면 try catch문을 통해 예외에대한 처리를 직접할것인지 묻는다. 여기선 우리가 직접 처리를 해주겠다.

 

만약 예외에대한 처리를 catch문에서 메시지를 출력해주되 그 값에 대한 처리 또한 해주어야 잘되지 않을까 합니다.

나머지의 대한 정리를 처리해주는 것은 finally구문입니다

 

 

하지만 우리가 자주 사용하는 메서드에서 오류를 지속적으로 잡게 될 경우 코드의 가독성이 많이 떨어질 수 있다.

예외처리에는 두 가지의 처리방법이 있는데

첫 번째는 Exception클래스를 상속받는  컴파일 타임 예외이며 이것은 우리가 예외에 대한 구체적인 로직을 작성해주어야 한다.

 

두 번째는 RunRuntimeException클래스를 상속받는  런타임 예외인데 이것은 프로그램이 실행돼 봐야 알 수 있는 오류이다.

하지만 버그를 발생시킬 수 있기 때문에 빈번한 사용은 하지 않는다.

반응형

댓글