AnyLogic
Развернуть
Размер шрифта

Функции вывода сообщений об ошибках

Функция Описание
RuntimeException error(String errorText) Сообщает об ошибке в процессе «прогона» модели путем срабатывания RuntimeException с заданным текстом errorText, которому предшествует полное имя агента. Функция не возвращает значение, а генерирует ошибку выполнения программы. Тип возвращаемого значения задается для тех случаев, когда вы хотите использовать вызов формата throw error("сообщение");

errorText — выводимый текст описания ошибки.
RuntimeException error(Throwable cause, String errorText) Сообщает об ошибке в процессе «прогона» модели путем срабатывания RuntimeException с заданным текстом errorText. Функция не возвращает значение, а генерирует ошибку выполнения программы. Тип возвращаемого значения задается для тех случаев, когда вы хотите использовать вызов формата throw error("сообщение");

cause — причина ошибки (сохраняется в сообщении), может быть null.
errorText — выводимый текст описания ошибки.
RuntimeException error(String errorTextFormat, Object... args) То же, что и error(String), но позволяет форматировать текст ошибки подобно функции String.format(String, Object...).
RuntimeException error(Throwable cause, String errorTextFormat, Object... args) То же, что и error(String), но позволяет форматировать текст ошибки подобно функции String.format(String, Object...).

cause — причина ошибки (сохраняется в сообщении), может быть null.
RuntimeException errorInModel(String errorText) Сообщает об ошибке в логике модели путем срабатывания ModelException с заданным текстом errorText. Функция не возвращает значение, а генерирует ошибку выполнения программы. Тип возвращаемого значения задается для тех случаев, когда вы хотите использовать вызов формата throw error("сообщение");
Функция отличается от error() тем, как именно выводится сообщение об ошибке. Ошибки в логике модели считаются менее критичными, чем другие: при их наличии автору модели может быть достаточно просто внести небольшие изменения в значения параметров. Например: «агент не смог покинуть блок диаграммы, так как следующий блок был занят», «недостаточная вместимость стеллажа» и так далее.

cause — причина ошибки (сохраняется в сообщении), может быть null.
errorText — выводимый текст описания ошибки.
RuntimeException errorInModel(Throwable cause, String errorText) Сообщает об ошибке в логике модели путем срабатывания ModelException с заданным текстом errorText. Функция не возвращает значение, а генерирует ошибку выполнения программы. Тип возвращаемого значения задается для тех случаев, когда вы хотите использовать вызов формата throw error("сообщение");
Функция отличается от error() тем, как именно выводится сообщение об ошибке. Ошибки в логике модели считаются менее критичными, чем другие: при их наличии автору модели может быть достаточно просто внести небольшие изменения в значения параметров. Например: «агент не смог покинуть блок диаграммы, так как следующий блок был занят», «недостаточная вместимость стеллажа» и так далее.

cause — причина ошибки (сохраняется в сообщении), может быть null.
errorText — выводимый текст описания ошибки.
RuntimeException errorInModel(String errorTextFormat, Object... args) То же, что и errorInModel(String), но позволяет форматировать текст ошибки подобно функции String.format(String, Object...).
RuntimeException errorInModel(Throwable cause, String errorTextFormat, Object... args) То же, что и errorInModel(String), но позволяет форматировать текст ошибки подобно функции String.format(String, Object...).

cause — причина ошибки (сохраняется в сообщении), может быть null.
RuntimeException warning(String warningText) Выводит предупреждение в ходе «прогона» модели с заданным текстом warningText, который предваряется полным именем агента. Предупреждения можно включить или выключить в настройках AnyLogic (секция Выполнение модели) или с помощью API: AnyLogicRuntimePreferences.setEnableWarnings(boolean).
Функция содержит встроенные проверки, ограничивающие число выводимых предупреждений:
  • Если несколько предупреждений имеют одинаковый текст warningText, отображаются только первые 10.
  • Если срабатывает более 1000 предупреждений с разными warningText, все последующие предупреждения (включая дубли тех, что входят в первую тысячу) перестают отображаться.
  • Будьте осторожны с динамическим изменением текста warningText (например, при выводе имен агентов): возможно, для этих задач логичнее использовать функцию warning(String, Object...).

warningText — выводимый текст предупреждения
RuntimeException warning(String warningTextFormat, Object... args) Выводит предупреждение в ходе «прогона» модели с заданным текстом в формате warningTextFormat, который предваряется полным именем агента. Позволяет форматировать текст, подобно функции String.format(String, Object...). Предупреждения можно включить или выключить в настройках AnyLogic (секция Выполнение модели) или с помощью API: AnyLogicRuntimePreferences.setEnableWarnings(boolean).
Функция содержит встроенные проверки, ограничивающие число выводимых предупреждений:
  • Если несколько предупреждений имеют одинаковый текст warningTextFormat, отображаются только первые 10.
  • Допустимо вызывать предупреждения с одинаковой строкой формата (которая задает тип предупреждения) но различными args — AnyLogic выведет 10 первых предупреждений каждого типа.
  • Если срабатывает более 1000 предупреждений с разными warningTextFormat, все последующие предупреждения (включая дубли тех, что входят в первую тысячу) перестают отображаться.
  • Будьте осторожны с динамическим изменением текста warningTextFormat (например, при выводе имен агентов): вместо этого модифицируйте args.
Как мы можем улучшить эту статью?