본문 바로가기
개발/JAVA

[JAVA] 함수의 결과를 성공과 실패만 판단하면 될때 반환값으로 어떤값이 좋을까?

by 상용최 2020. 9. 15.
반응형

함수의 결과를 성공과 실패만 판단하면 될때 어떤형식이 좋을까 ?

 

함수를 실행할때 반환값을 지정해줄 수 있다.

void로 지정하면 반환값이 없어도된다.

 

함수를 실행만 하고 반환값이 필요없다면 void가 옳은선택일까?

그렇다면 함수를 실행하다가 실패한다면 예외를 던질것인가 ?

나쁘지 않은 선택이다.

하지만 void에는 2가지 단점이있다.

1. 테스트코드를 작성하기 힘들다.

2. 어떠한 이유때문에 예외가 발생됐는지 명확하게 알기 힘들다.

 

불리언으로 성공일때는 true 실패일 때는 false로 표현하는 간단한 방법도 있다.

어떤 동작이 성공/실패로 나뉘어지면 실패이유가 단1가지 뿐이라면 불리언도 좋은 선택이 될 수 있다.

하지만 대부분의 로직은 실패이유가 1개보다 많다.

이럴때 어떠한 이유때문에 예외가 발생됐는지 명확하게 알기 힘들다는 단점이 있다.

 

int 상수값으로 실패 상황을 표현하는 방법도 있지만 오류의 개념을 int로 만들면 그 자체로 오류가 발생할 수 있으며, 안전한 형식을 제공하지 못한다.

뿐만 아니라 가독성과 유지보수성도 낮아진다.

 

enum을 사용하게 된다면 안전한 형식과 좋은 문서화를 제공할 수 있다.

enum은 유효한 형식으로 구성된 미리 정의된 상숫값의 목록이다.

그렇기때문에 interface 혹은 class에서 enum을 사용할 수 있다.

 

 

반응형

댓글