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