Exception을 떨구는 거는 의도된 동작이고 해당 함수의 경우는 코드 측면에서 보면 if else보다 개선된 방식으로 볼 수 있습니다.
해당 함수를 사용하는 경우는 반드시 해당값이 필요한 경우에 흔히 사용합니다. 예를 들면 사용자 디테일을 보여주는 화면에서 사용자 ID를 받아서 조회를 한다고 치죠. 그럼 사용자ID가 넘어오지 않는 건 잘못 개발이 된거죠. 이런 경우 if else로 넘어가는 것이 아니라 개발시에 예외를 떨구어서 확실하게 처리를 하는 것이 맞습니다.
예를 든 것처럼, 확실하게 해당값이 필요한 곳이라면, check이나, require를 사용하는 것이 if else보다 더 명확한 코드입니다.