Я хочу вызвать исключение времени выполнения, если инварианты моего класса недействительны. Поскольку это программная ошибка (аналогичная исключению NullPointerException), клиенты не должны перехватывать это исключение.
Должен ли класс исключений быть объявлен частным или общедоступным (или что-то еще)?
class Foo
{
// ...
private static class InvariantsViolated
{
// ...
}
}
Существуют ли какие-либо рекомендации по настраиваемым исключениям и видимости среды выполнения?