Да. Это стандартная практика.
В Effective Java, 2nd Ed. это охватывается пунктом 61 «Бросать исключения, соответствующие абстракции». Независимо от того, проверено ли исключение или проверено на нем, в статье 58 «Эффективное Java» также описывается «Использовать проверенные исключения для восстанавливаемых условий и исключения времени выполнения для ошибок программирования».
То, что это конструктор, а не обычный метод, на самом деле не проблема. (На самом деле, конструкторы, возможно, имеют больше свободы, поскольку они не связаны интерфейсом супер.)
Когда выдается исключение в результате другого исключения, рекомендуется убедиться, что вы установили cause
для нового исключения.