error make для core
Сигнатура
> error make {flags} (error_struct)
Флаги
-
--unspanned, -u: Удалить метки из ошибки.
Параметры
-
error_struct: Ошибка для создания.
Типы входных и выходных данных:
| входные данные | выходные данные |
|---|---|
| any | error |
Примеры
Создать простую ошибку по умолчанию.
> error make
Создать простую ошибку из строки.
> error make 'my error message'
Создать простую ошибку из записи error_struct.
> error make {msg: 'my error message'}Сложная ошибка с использованием spans и внутренних ошибок.
> def foo [x: int, y: int] {
let z = $x + $y
error make {
msg: "an error for foo just occurred"
labels: [
{text: "one" span: (metadata $x).span}
{text: "two" span: (metadata $y).span}
]
help: "some help for the user"
inner: [
{msg: "an inner error" labels: [{text: "" span: (metadata $y).span}]}
]
}
}
Связать ошибки с помощью конвейера.
> try {error make "foo"} catch {error make "bar"}Связать ошибки с помощью аргументов (обратите внимание на дополнительную команду в catch).
> try {
error make "foo"
} catch {|err|
print 'We got an error that will be chained!'
error make {msg: "bar" inner: [$err]}
}Примечания
Используйте как команду с error_struct или передайте строку в качестве входных данных. Описание error_struct приведено ниже:
-
msg: string(обязательно) code: stringlabels: table<error_label>help: stringurl: stringinner: table<error_struct>src: src_record
error_label должен содержать следующие ключи:
text: stringspan: record<start: int end: int>
Внешние ошибки (ссылающиеся на внешние источники, а не на стандартные spans Nu) создаются с помощью столбца src с записью src_record. Это меняет только расположение меток. В этом случае ключ code игнорируется и всегда будет иметь значение nu::shell::outside. Ошибки не могут использовать метки, ссылающиеся одновременно на внутренние и внешние источники; для этого используйте ошибку inner.
-
name: string— имя источника -
text: string— исходный текст, в который следует поместить spans -
path: string— путь к файлу, в который следует поместить spans
Ошибки можно связывать друг с другом с помощью ключа inner, а для получения более подробных сообщений об ошибках можно указать несколько spans.
Если передана строка, она станет частью msg в error_struct.
Ошибки также можно связывать с помощью try {} catch {}, что позволяет проще выводить связанные ошибки. Блок кода для catch передает в блок catch запись с ошибкой блока try, которую можно использовать в error make как входные данные или аргумент. Они будут добавлены как ошибки inner к последней error make.
Copyright © 2019–2026 The Nushell Project DevelopersLicensed under the MIT License.
https://www.nushell.sh/commands/docs/error_make.html