Spec-Zone.ru › Nushell

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: string
  • labels: table<error_label>
  • help: string
  • url: string
  • inner: table<error_struct>
  • src: src_record

error_label должен содержать следующие ключи:

  • text: string
  • span: 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API