Попытка приостановить потоки после вызова пользовательского исключения
Это школьное задание, над которым я работаю. Я был туда-сюда с моим наставником, и он помогал мне с этим, но я кое-что здесь упускаю. Рассматриваемая программа принимает аргумент "-f filename.txt" и в этом имени файла есть список таких вещей
FansOn, 2000
FansOff, 4000
Bell, 2000,5
Программа принимает эти имена и создает классы, используя отражение, а затем вызывает метод action() сгенерированных классов (FansOn и т. Д.). Он создает поток для каждого класса, а затем запускает поток, который генерирует сообщение типа "Вентилятор включен". Для двух событий, PowerOut и WindowMalfunction, он генерирует исключение Customler ControllerException, которое затем необходимо получить объект с именем GreenhouseControls
и сериализовать его в файл с именем dump.out
для последующего изучения. Проблема в том, что я могу позвонить ghcSuspend()
метод, который должен приостановить все события сразу после вызова исключения. Фактически, в этот момент моя программа просто генерирует проблемы переполнения стека. Я не знаю, должен ли я публиковать здесь весь мой код, потому что я, очевидно, не хочу, чтобы кто-то еще брал мой курс, чтобы просто передать большую часть кода, поэтому я не знаю, что я должен опубликовать, чтобы вы, ребята, поняли мою проблему,
Так по моему main()
метод, я создаю GreenhouseControls
объект называется gc. GreenhouseControls - это имя файла основного класса. В конце концов мне нужен этот объект gc в моем собственном исключении, которое определено и перехвачено в моем файле events.class
1 ответ
Я понял это. Поскольку мой объект создавался в методе run, мне в основном приходилось пропускать его через каждый метод, который вызывался один за другим, пока он не достиг моего последнего метода, где мне нужно было с ним справиться. Я упустил некоторые базовые концепции ОО, которые в итоге создали бесконечный цикл, переполнивший мой стек. Так что теперь у нас все хорошо.