Да, это вполне разумно. Как еще у вас могут быть такие обстоятельства:
class List {
public List(int length) {
if(length < 0) {
throw new ArgumentOutOfRangeException(
"length",
"length can not be negative"
);
}
// okay, go!
}
}
A List
с отрицательной длиной, безусловно, является исключительным. Вы не можете позволить этому вернуться к звонящему и заставить его думать, что строительство прошло успешно. Какая альтернатива, CheckIfConstructionSucceeded
функция-член экземпляра? Yucky.
Или как насчет
class FileParser {
public FileParser(string path) {
if(!File.Exists(path)) {
throw new FileNotFoundException(path);
}
// okay, go!
}
}
Опять же, это бросок, и ничто другое не приемлемо.