Similar discussion here.

Note: it's good that you think about error handling (and that you test it!). We just need to go to a maintainable system (hence that exception handler approach).