- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于R包开发,当函数应该返回错误消息或警告时,最好使用什么?:
cat()
打印()
消息()
error()
警告()
例如在这个函数中,当 a 或 b 不是数字时,我应该使用哪个来返回错误消息。
function_sum_two_nums <- function(a, b){
## Check if the a and b are numbers
if(is.numeric(a) & is.numeric(b)){
return(a+b)
} else{
print/cat/message/error/warning('a or b are not numbers')
}
}
最佳答案
在这种特殊情况下,唯一明智的选择是使用 stop()
,因为这种情况是错误的,而您想停止该函数从遇到错误时继续。
其他选项将允许代码执行继续,返回函数中最后计算的表达式。这不是您想要的。
当您想为最终用户提供输出时,请使用 print()
。在相同情况下,使用 cat()
可以更好地控制输出。这不适合“库代码”,因为它不容易被抑制。但是,这是执行任务的正确方法,例如将数据发送到标准输出以便在 shell 管道中进行处理,或者编写“ pretty-print ”有趣内容的函数。
将 message()
用于信息性消息,这些消息不是警告或错误,而是在用户未明确请求输出的某些计算过程中出现的。例如,如果您正在开发一个包,并且您想要通知用户他们可以安装一个特殊的依赖项以提高性能,您可以使用 message()
来发出此消息。用户可以使用 suppressMessages
抑制消息。
使用 warning()
来指示不需要函数执行来中止的问题情况。例如,如果用户请求的操作非常慢,或者可能会在以后的计算中导致数值稳定性问题。用户可以使用 suppressWarnings
抑制警告。
如上,当出现完全错误以至于函数无法继续执行时,使用error()
。可以捕获和处理错误(例如,使用 tryCatch
),但用户必须明确地做到这一点。
其他函数:message
、warning
和stop
每个信号(或“抛出”)一个条件。我不会详细说明条件是什么,因为 Wickham 在 chapter 8 of Advanced R 中介绍了它们.
非常简单的版本是所有这 3 个都向 R 运行时引入一个信号,它自己什么都不做。然后,用户可以为特定条件安装“处理程序”,这是一个在发出条件信号时调用的函数。
R 对于由 message()
、warning(),
和 error()
发出信号的条件有默认处理程序。这就是这些函数的标准行为是如何实现的。
关于r - R : message/cat/print/warning/error? 的良好编码习惯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68711678/
warnings.warn() 和有什么区别?和 logging.warn()就它们的作用和应该如何使用而言? 最佳答案 我同意另一个答案——logging 用于记录,warning 用于警告——但我
这是我写的代码: #usr/bin/python3 import warnings def tt(): warnings.warn("123") return 10 x = tt()
我正在尝试使用基于文档中显示的示例的代码片段来提出DeprecationWarning。 http://docs.python.org/2/library/warnings.html#warnings
我正在尝试提出一个 DeprecationWarning,其中包含基于文档中显示的示例的代码片段。 http://docs.python.org/2/library/warnings.html#war
我有兴趣尝试在调用时操纵警告,而无需围绕方法创建支持基础设施。也就是说,我需要能够捕获警告,而无需使用以下代码包装代码: tryCatch(..., warning = function() { ac
我是 js 我正在尝试使用 this.setState({但我收到警告。 你们能告诉我为什么我收到以下警告吗 warning.js:45 警告:setState(...):只能更新已安装或正在安装的组
我的最小例子是 #!/usr/bin/python3 import warnings warnings.warn('Run Forest run!', stacklevel=2) warnings.w
本文整理了Java中com.ibm.wala.util.warnings.Warnings.asString()方法的一些代码示例,展示了Warnings.asString()的具体用法。这些代码示例
本文整理了Java中com.ibm.wala.util.warnings.Warnings.clear()方法的一些代码示例,展示了Warnings.clear()的具体用法。这些代码示例主要来源于G
本文整理了Java中com.ibm.wala.util.warnings.Warnings.add()方法的一些代码示例,展示了Warnings.add()的具体用法。这些代码示例主要来源于Githu
我一定是错误地理解了警告文档。我读它的方式,这段代码: use warnings; use warnings FATAL => 'all'; warnings::warn('numeric', 'bl
我在 Linux 上使用 OpenMP 指令编译 C 代码时收到此警告: warning: ignoring #pragma omp parallel Gcc 版本是 4.4。 这只是一个我不应该关心
我有一个奇怪的 g++ 行为,当显示任何其他警告时,它会显示有关无法识别的命令行选项的警告。 例子: struct Foo{virtual int bar() = 0;}; struct Bar:pu
在 Visual Studio 2010 中使用 C++ native 解决方案。 #pragma warning (push) 用于 cpp 文件的开头,在所有包含之后。之后,#pragma war
我习惯于开始我的每一个脚本 use strict; use warnings; 但是这里的一些知名人士推荐 use warnings 'all'; 如果我理解正确,后者甚至比第一个更好。所以我通读了d
我正在编码C#。我使用NCrunch在后台运行单元测试。我已经在CSPROJ文件中设置了(新的CSPROJ格式)。 我想将FxCop分析仪用作NuGet软件包:https://docs.microso
谁能帮我解决这个问题,我收到此警告消息 log4j:WARN No appenders could be found for logger (com.akak.book.shop.listener.L
我正在尝试了解更多关于 linux 内核中的 kobject 的信息,并且在尝试编写一个使用此类工具的模块时,我收到了错误和警告消息,因此我将相关数据的精简版本放在这里结构和相应的gcc的错误和警告信
http://docs.python.org/2/howto/logging.html 上的样本同时使用 warn 和 warning。 最佳答案 logging.warn 自 Python 3.3
警告[nuxt]两个解析为相同名称ProseCode的组件文件:。警告[nuxt]两个解析为相同名称ProsePre的组件文件:。更新nuxt 3后的警告->3.7&nuxt/内容2.4->2.8。如
我是一名优秀的程序员,十分优秀!