Nushell
书
Cookbook
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
书
Cookbook
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
  • 入门篇

    • 介绍
    • 安装 Nu
    • 以 Nushell 的方式思考
    • 在系统中四处移动
  • Nu 基础篇

    • 数据类型
    • 加载数据
    • 处理字符串
    • 处理列表
    • 处理表格
    • 管道
    • 命令索引
  • Nushell 编程

    • 自定义命令
    • 别名
    • 运算符
    • 变量和子表达式
    • 脚本
    • 模块
    • 覆层
  • Nu 作为 Shell 使用

    • 配置
    • 环境
    • 标准输入、输出和退出码
    • 转移到系统
    • 配置第三方提示
    • Shell 中的 Shell
    • Reedline,Nu 的行编辑器
    • 外部命令
    • 自定义补全
    • Nu 的配色和主题
    • 钩子
  • 迁移到 Nu

    • 从 Bash 到 Nu
    • 从其他 Shell 或 DSL 到 Nu
    • 从命令式语言到 Nu
    • 从函数式语言到 Nu
    • Nushell 运算符
  • 高级篇

    • DataFrames
    • 元数据
    • 创建你自己的错误
    • 并行
    • 插件

创建你自己的错误

使用 元数据 信息,你可以创建自己的自定义错误,错误信息由多个部分构成:

  • 错误的标题
  • 错误信息的标签,其中包括标签的文本和要标注下划线的范围

你可以使用error make命令来创建你自己的错误信息。例如,假设你有自己的名为my-command的命令,你想给调用者一个错误信息,说明传入的一个参数有问题。

首先,你可以从参数的来源中获取标注范围:

let span = (metadata $x).span;

接下来你可以通过 error make 命令来创建一个错误,该命令需要一个可以描述待创建错误的记录作为输入:

error make {msg: "this is fishy", label: {text: "fish right here", start: $span.start, end: $span.end } }

与你的自定义命令放在一起后,它可能看起来像这样:

def my-command [x] {
    let span = (metadata $x).span;
    error make {
        msg: "this is fishy",
        label: {
            text: "fish right here",
            start: $span.start,
            end: $span.end
        }
    }
}

现在当传入一个值调用时,我们会看到一个错误信息返回:

my-command 100
# => Error:
# =>   × this is fishy
# =>    ╭─[entry #5:1:1]
# =>  1 │ my-command 100
# =>    ·            ─┬─
# =>    ·             ╰── fish right here
# =>    ╰────
在GitHub上编辑此页面
Contributors: Justin Ma, 0x4D5352
Prev
元数据
Next
并行