Page 234 - 6253
P. 234
// Реалізація конструктора
}
}
class SocketInput extends FileInput {
// Старий конструктор
public SocketInput(String name) throws FileNotFoundException {
super(name);
// Реалізація конструктора
}
// Старий конструктор
public SocketInput() throws IOException {
super("file.txt");
// Реалізація конструктора
}
// Новий конструктор
public SocketInput(String name, int mode) { // Помилка компіляції
super(name);
// Реалізація конструктора
}
}
У наведеному вище прикладі компілятор не дозволить створити конструктор
підкласу, який звертається до конструктора суперкласу без коректної інструкції
throws. Якби це було можливо, то при створенні об'єкта підкласу класу FileInput не
було б ніяких повідомлень про можливість генерації винятку, і при виникненні
виняткової ситуації її джерело було б важко ідентифікувати.
9.6 Оператор assertion
На етапі відлагодження програмного коду знайти неявні помилки у
функціонуванні програми буває досить складно. Наприклад, у методі, що
встановлює вік користувача, інформація про вік може бути отримана із зовнішніх
джерел (файл, БД), де це значення може бути від’ємним. Далі, отримані таким
233