Володин Денис, 396, JUnit.

Ты везде кидаешь ```Exception```. Нужно всегда кидать как можно более узкое исключение. В нашем случае это всякие ```IllegalArgumentException```, ```RuntimeException```, ```IOException``` и пр. Вдобавок, многие из них unchecked и это дает менее запутанную реализацию.