Throwing NotFoundHttpException is best done in a controller, and not within library code. We can't assume that the user is calling the paginator from a web context -- it could be a CLI script!

I would suggest throwing an InvalidArgumentException with the message: "$itemCountPerPage must be greater than zero".