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