Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 2
Регистрация: 20.10.2011
Сообщений: 154

Статус завершения пр Exception

15.11.2021, 09:29. Показов 1133. Ответов 2

Студворк — интернет-сервис помощи студентам
Товарищи, возникла такая ситуация: проект уже довольно крупный, писался долго, много и разными программистами. Но сейчас столкнулся со следующей проблемой.
Есть ряд консольных скриптов, которые вертятся на кроне - их много и они используют разные классы и методы. Но в текущей реализации если при выполнении команды падает Exception, то статус завершения всегда = 0.
Т.е. берем любой скрипт, первой строчкой пишем
PHP
1
throw new \Exception()
Запускаем команду
Пишем в консоли
Code
1
echo $?
Всегда возвращается 0.

Что логично, если в скрипте написать
PHP
1
throw new \Exception('error', 66)
то статус завершения покажет 66.

А теперь, собственно, вопрос: Можно ли как-то установить код завершения по-умолчанию, чтобы не прописывать в сотнях файлов во всех Exception код завершения? Т.е. если код исключения не задан, то вываливать какой-то код, установленный по-умолчанию?
Не могу придумать, как подступиться к этой проблеме, дабы не плодить говнокод
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.11.2021, 09:29
Ответы с готовыми решениями:

Ошибка Raised exception class EOleSysError with message 'Недостаточно памяти для завершения операции'
Доброго времени суток. Помогите пожалуйста с такой проблемой, делаю выгрузку двумерного динамического массива в excel. Массив очень...

Unhandled exception at 0x7c812a5b : Microsoft C++ exception: std::bad_alloc at memory location 0x0012f350
что то я запутался совсем. подскажите где глюк? Считываю из XML данные: char* ValueVariable(длинная символьная строка) пытаюсь ее...

First chance exception at $646E6970. Exception class $C0000005 with message access violation at 0x646e6970
Перешёл с XE6 на Delphi 10.3 после чего проект перестал запускаться, выдавая ошибку - First chance exception at $646E6970. Exception...

2
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
15.11.2021, 10:00
Лучший ответ Сообщение было отмечено Fresh_MaN как решение

Решение

Можно попробовать использовать это: https://www.php.net/manual/ru/... andler.php

Добавлено через 2 минуты
Но, вероятно, этот механизм там уже используется, раз код ошибки отдаётся. Надо его найти и там дописать код.
1
1 / 1 / 2
Регистрация: 20.10.2011
Сообщений: 154
16.11.2021, 06:45  [ТС]
В общем беда в том, что на сайте ядро битрикса, а консольные скрипты через Application симфони запускаются, но с директивой setCatchExceptions(false) для dev-площадок. Битриксовый обработчик set_exception_handler по умолчанию die() без кода завершения вызывает. Поскольку ядро менять не комильфо, решение было следующее: для prod-площадки убрать setCatchExceptions(false), тогда обработчик симфони по-умолчанию код завершения 1 выдает, а для dev-площадки в общем файле, через который все консольные команды запускаются поставить дополнительный catch (Throwable $t){}, где выводить трассировку + die(1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2021, 06:45
Помогаю со студенческими работами здесь

First chance exception at $77ADB09E. Exception class EAccessViolation with message 'Access Violation'. Process
Объясните в каких случаях возникает эта ошибка, из-за чего? Как справиться с этой ошибкой? Только плиз на примере и доступными словами, т....

Unhandled exception at at 0x75E717D2 in ConsoleApplication24.exe: Microsoft C++ exception: std::out_of_range at memory l
Здравствуйте, помогите пожалуйста, при проходе через последний цикл выдаёт вот такую ошибку: Unhandled exception at at 0x75E717D2 in...

Ошибка: First chance exception at $FEEEFEEE. Exception class $C0000005 with message 'access violation at 0xfeeefeee:
Здравствуйте! Подскажите пожалуйста, из-за чего может возникнуть такая ошибка?: First chance exception at $FEEEFEEE. Exception class...

Ошибка First chance exception at $75A6D36F. Exception class EAccessViolation.
на что программа ругается не пойму((( подскажите вот такая ошибка First chance exception at $75A6D36F. Exception class EAccessViolation...

Database Exception – yii\db\Exception ↵ Caused by: PDOException
Database Exception – yii\db\Exception ↵ Caused by: PDOException Отчего это может быть? Добавлено через 49 минут Это на строчке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru