You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R Shiny的renderTable中正常展示自定义错误消息

问题根因

你编写的validate校验逻辑放在了tableau_taux_fonction()调用语句之后,而报错是该函数内部的filter逻辑触发的:当所选筛选条件匹配结果为空时,filter的输入参数长度为0,直接抛出了R原生报错,代码根本没有执行到后续的validate校验步骤。

排查解决步骤
  • 第一步:给函数调用增加错误捕获逻辑
    把tableau_taux_fonction的调用包裹在tryCatch中,提前捕获函数运行过程中出现的所有错误,避免原生报错直接暴露到前端页面,示例修改代码如下:
    output$tableau_taux <- renderTable({
        # 用tryCatch捕获函数运行阶段的报错
        tab_taux <- tryCatch({
            tableau_taux_fonction(input$etab_id,input$pcs_id,input$retard_id,input$sexe_id)
        }, error = function(e) {
            # 运行出错时统一返回NULL
            return(NULL)
        })
        validate(
          need(!is.null(tab_taux) && nrow(tab_taux) > 0, "Veuillez sélectionner d'autres critères")
        )
        tab_taux  
    })
    
  • 第二步:补充空数据集判断规则
    在校验逻辑中额外增加nrow(tab_taux) > 0的判断:避免函数运行没有报错、但返回了行数为0的空数据集的场景,也能正常触发你设置的自定义提示。
  • 第三步(可选):优化自定义函数内部逻辑
    直接修改tableau_taux_fonction的代码,在执行filter操作前先判断传入的筛选参数是否为空、是否和待筛选数据集的长度匹配,提前处理异常场景直接返回NULL,不需要等到filter执行时报错。

内容的提问来源于stack exchange,提问作者Elise_351995

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:36:03