r - R 4.0.1 上函数和 S4 泛型的错误处理不一致
问题描述
在 R 4.0.1 之前,函数和 S4 泛型处理错误的方式相同:
> nrow(stop())
Error in nrow(stop()) :
> setGeneric("nrow")
[1] "nrow"
> nrow(stop())
Error in nrow(stop()) :
在 R 4.0.1 中,我现在得到:
# base::nrow
> nrow(stop())
Error in nrow(stop()) :
# Convert nrow to S4 generic
> setGeneric("nrow")
[1] "nrow"
> nrow(stop())
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'x' in selecting a method for function 'nrow':
nrow
在这种情况下,似乎不知道如何处理该错误。
以前,统一性意味着 S4 可以用来代替 Bioconductor 软件包(如 BiocGenerics)似乎利用的基本功能。这在 R 的最新开发版本 (2020-06-09 r78662) 上仍然存在。这种新的不一致是 R 4.0.1 的预期行为吗?
此外,R 4.0.1 行为对闪亮的应用程序有影响,如果在R < 4.0.1 S4 错误不会遇到的情况req(nrow(my_reactive()))
下,新的 S4 错误将终止/崩溃应用程序。base::nrow
解决方案
推荐阅读
- gremlin - 优化 gremlin 查询以避免图的多次遍历
- javascript - TypeScript:省略只读对象文字
- javascript - 删除构建 Angular 8 后脚本中的内容
- kubernetes-helm - CustomResourceDefinition 和 ClickHouseInstallation 的 Helm 模板顺序
- google-bigquery - 如何查看非数字列中的所有值(ISNUMERIC() 等效?)
- amazon-web-services - CloudFormation Fn::Transform 操作:降低 -> 语法错误
- php - 无法将变量传递给 Laravel x 组件
- javascript - 如何设置通知声音和“橙色闪烁标签”
- django - Django Rest Framework:如何正确测试 ViewSet?
- android - CastStatusCodes 2255 的含义是什么?