Errors
должно идентифицировать программно неисправимые проблемы (например, нехватка памяти).Exceptions
должен идентифицировать программно восстанавливаемые проблемы, которые вызваны неожиданными условиями вне контроля кода (например, отключение базы данных).RuntimeExceptions
должен идентифицировать программно восстанавливаемые проблемы, которые вызваны ошибками в потоке кода (читай: ошибки разработчика, такие как нулевой указатель, недопустимый аргумент и т. Д.).
В вашем случае вы хотитенаследовать от RuntimeException
.