そもそもなんでArgumentExceptionとかInvalidOperationException使うの嫌がってんの?
Assertだと1種類で済むから?