can you just return `null` and check the return value instead?

Using exceptions for flow control is almost never a good idea, especially if it can be avoided.