加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

你能问红宝石把警告视为错误吗?

发布时间:2020-12-16 20:18:14 所属栏目:百科 来源:网络整理
导读:红宝石是否允许您将警告视为错误? 我想这样做的一个原因是确保如果删除一行代码意味着发生警告,我可以选择确保突变体被杀死. 解决方法 不幸的是,这不是真正的方法,至少在大多数版本的 Ruby中(可能存在变体),缺少监视程序输出并在标准错误出现警告时中止它.
红宝石是否允许您将警告视为错误?

我想这样做的一个原因是确保如果删除一行代码意味着发生警告,我可以选择确保突变体被杀死.

解决方法

不幸的是,这不是真正的方法,至少在大多数版本的 Ruby中(可能存在变体),缺少监视程序输出并在标准错误出现警告时中止它.这就是为什么:

Ruby定义了Kernel.warn,您可以重新定义自己想要的内容(包括退出),以及Ruby希望如何(希望)一致地使用Ruby来报告警告(包括内部的解析警告),但是
在Ruby内部实现(在C中)的方法反过来会直接从source / server.c调用一个名为rb_warn的本地方法,完全绕过了对Kernel.warn的重新定义(例如,“条件中的字符串字面量”警告,例如发出当做这样的事情:do_something如果’string’,通过源/ parse.c的本机rb_warn打印)
>使事情变得更糟,还有一个额外的rb_warning本机方法,Ruby可以使用它来记录如果-w或-v被指定的警告.

所以,如果你只需要根据应用程序代码调用Kernel.warn生成的警告来执行操作,那么只需重新定义Kernel.warn.否则,你有两个选择:

> alter source / error.c在rb_warn和rb_warning(和rb_warn_m?)中退出,并重建Ruby>监视程序的’:warning:’的标准错误输出,并在匹配时中止它

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读