Оператор new
, который вызывает конструктор, может выдать любое исключение, которое вы можете себе представить. Например, если внутри конструктора, который пытается выделить что-то большое, и терпит неудачу, то это исключение может быть перехвачено и повторно вызвано как нечто более экзотическое.
Конечно, в тот момент, когда вы начинаете видеть нехватку памяти, вы, вероятно, должны считать процесс смертельно больным и избавить его от страданий как можно скорее.
Конструкторы также могут, несмотря на все слухи об обратном, возвращать null
даже для классов - но это крайний крайний случай, граничащий с патологическим.