Попытка приостановить потоки после вызова пользовательского исключения

Это школьное задание, над которым я работаю. Я был туда-сюда с моим наставником, и он помогал мне с этим, но я кое-что здесь упускаю. Рассматриваемая программа принимает аргумент "-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, мне в основном приходилось пропускать его через каждый метод, который вызывался один за другим, пока он не достиг моего последнего метода, где мне нужно было с ним справиться. Я упустил некоторые базовые концепции ОО, которые в итоге создали бесконечный цикл, переполнивший мой стек. Так что теперь у нас все хорошо.

Другие вопросы по тегам