same as above with the throw / else