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
   229   230   231   232   233   234   235   236   237   238   239