Переиздайте ошибку
С версии 7.5 MATLAB® поддерживает обработку ошибок, которая основана на классе MException. Вызов rethrow с аргументом структуры, как описано на этой странице, теперь заменяется путем вызова переброска с объектом MException, как описано на странице с описанием для MException.rethrow. rethrow, вызванный входом структуры, будет удален в будущей версии.
rethrow(errorStruct)
rethrow(errorStruct) переиздает ошибку, заданную errorStruct. В настоящее время рабочая функция останавливается, и управление возвращается к клавиатуре (или к любому блоку catch включения). Аргумент errorStruct должен быть структурой MATLAB, содержащей, по крайней мере, поля message и identifier:
Имя поля | Описание |
|---|---|
message | Текст сообщения об ошибке |
identifier | Идентификатор сообщения сообщения об ошибке |
stack | Информация об ошибке от стека программы |
См. "Идентификаторы сообщений" в документации MATLAB для получения дополнительной информации о синтаксисе и использовании идентификаторов сообщений.
rethrow обычно используется в сочетании с операторами try, catch, чтобы переиздать ошибку от блока catch после выполнения catch связанные операции. Например,
try do_something catch do_cleanup rethrow(previous_error) end
Вход errorStruct может содержать поле stack, идентичное в формате к выводу команды dbstack. Если поле stack будет присутствовать, стек повторно выданной ошибки будет установлен в то значение. В противном случае стек будет установлен в строку, в которой происходит перебросок.
MException | MException.rethrow | MException.throw | MException.throwAsCaller | assert | error | try, catch