|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
||||||
Создание своего исключения26.05.2012, 11:23. Показов 19037. Ответов 19
Метки нет (Все метки)
Всем доброго времени суток.Имеется объект фабрика,в котором имеется объект em суперкласса Employees,к которому относятся объекты классов Workers,Managers и ITR.У этих 3х подчиненных классов имеются поля: string имя,дата рождения типа Date,порядковый номер типа int,нужно,чтобы при вызове метода ShowWorkers,осуществляющего вывод List em на консоли было выведено:введен неверный возраст у такого-то элемента списка.Возраст считается неверным,если значение поля Edate объекта em класса Employees будет более ста лет,например:Workers w2=new Workers("Дубков Савел Григорьевич",format.parse("04.05.1888"), 3);.В книгах по java нет подробной информации как писать такие исключения.Как я понял,нужно создать свой класс AgeException extends Exception и в нем прописать условие этой ошибки,но я не знаю как.Помогите,пожалуйста.Код:
0
|
||||||
| 26.05.2012, 11:23 | |
|
Ответы с готовыми решениями:
19
Создание своего http сервера с JavaFX (панель)
Обрабатывать события или исключения для своего класса? |
|
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
|||||||||||
| 26.05.2012, 12:13 | |||||||||||
|
Как-то так:
2
|
|||||||||||
|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
||||||
| 26.05.2012, 12:26 [ТС] | ||||||
0
|
||||||
|
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
|
| 26.05.2012, 12:32 | |
|
GreatTalker, я лишь привел пример. Изменяешь тип int на Date и корректируешь логику в соответствии с типом Date. Тебе надо инкапсулировать поле в метод типа setDate и там уже прописывать логику выброса исключения
1
|
|
|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
|||||||||||
| 26.05.2012, 13:21 [ТС] | |||||||||||
|
Спасибо за пример.На его основн и еще на паре книг я реализовал это через класс exception.Есть одна проблема,я не знаю как обратиться к полю Edate списка em при сравнении в методе ShowWorkers(),помогите мне исправить мою ошибку,если я не напутал со структурой..
0
|
|||||||||||
|
|
|||||||
| 26.05.2012, 13:35 | |||||||
1
|
|||||||
|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
||||||
| 26.05.2012, 13:50 [ТС] | ||||||
|
Спасибо за помощь с датой,в инетре нигде не мог найти как с ней работать,теперь осталась одна ошибка,он почему-то не видит поле em.Edate....Edate cannot be resolved or is not a field,может,я не так вызываю поле в списке этого объекта?
0
|
||||||
|
|
|||||||||||
| 26.05.2012, 13:56 | |||||||||||
|
потому что поле protected, тоесть видно только наследникам, либо сделай гетер
1
|
|||||||||||
|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
||||||
| 26.05.2012, 14:20 [ТС] | ||||||
|
Я не понимаю,почему он не видит метод...The method getEdate() is undefined for the type ArrayList<Employees>я все изменил...Извиняюсь за свою безголовость...
0
|
||||||
|
|
||||||||||||
| 26.05.2012, 15:36 | ||||||||||||
|
ну и класс ошибки
я бы кидал вот так
0
|
||||||||||||
|
81 / 81 / 8
Регистрация: 10.06.2011
Сообщений: 258
|
|||||||||||
| 26.05.2012, 16:00 | |||||||||||
0
|
|||||||||||
|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
||||||
| 26.05.2012, 16:05 [ТС] | ||||||
|
Все равно ошибка:The method getEdate() is undefined for the type ArrayList<Employees>.метод прописан в классе Employees,на него нужно сделать ссылку??
0
|
||||||
|
81 / 81 / 8
Регистрация: 10.06.2011
Сообщений: 258
|
||||||
| 26.05.2012, 16:33 | ||||||
|
Нужно его вызывать тогда на объектах Employees. Тут уже сам смотри что тебе конкретно нужно, например:
1
|
||||||
|
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
|
||||||
| 26.05.2012, 16:35 | ||||||
|
ну конечно же нужно вызывать на объекте Employees метод, а не на листе
1
|
||||||
|
|
|
| 26.05.2012, 16:43 | |
|
ага я понял в чём прикол, у тебя неправильно архитектурно
смотри ты итерируешь арей и ищешь в нём эмплоев с неправильной датой и тогда пытаешься кинуть исключение, но это нужно делать на этапе создания этой даты неправильность в том что перенёс обработку ошибок на класс контейнер (лист там и тд), но этим должен заниматься класс реализатор эмплоя, мало того это необходимо сделать даже на будущее с возможностью задавать эту границу даты вспоминаем главное правило бина, он должен быть независим от других классов
1
|
|
|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
|
| 26.05.2012, 16:47 [ТС] | |
|
Спасибо....Боже мой,я совсем запутался.Я думал,что при выводе их на консоль должны ловиться ошибки,а тут значит try catch нужно делать при заполнении employees...
0
|
|
|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
||||||
| 27.05.2012, 21:28 [ТС] | ||||||
|
Исправил программу.Теперь работает.Выложу здесь, вдруг кому пригодится.
![]()
0
|
||||||
|
|
||||||
| 27.05.2012, 21:58 | ||||||
|
вот этот кусок хорошо выкинуть в проперти и сетер, вдруг вам потом эти границы перезадать захочется
поэтому его хорошо засинглетонить
1
|
||||||
|
4 / 4 / 1
Регистрация: 03.10.2010
Сообщений: 111
|
|
| 27.05.2012, 22:01 [ТС] | |
|
Спасибо за совет
0
|
|
| 27.05.2012, 22:01 | |
|
Помогаю со студенческими работами здесь
20
Почему нельзя генерировать исключения некоторых типов из своего кода
Создание исключения Создание пользовательского исключения Создание собственого исключения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|