在Google表单自定义函数中抛出自定义异常和错误消息?

时间:2014-10-02 00:09:04

标签: google-apps-script google-sheets custom-function

在Google表格中(与Excel等一样)如果用户在公式中输入错误输入,则会在违规单元格中打印错误代码,并且小弹出窗口会提供有关错误的更多详细信息。因此,如果我输入' = SQRT(-1)',' #NUM!'在单元格中打印,弹出窗口解释该值必须等于或大于0。

如何使用Google表格中的自定义功能复制此内容?抛出异常主要起作用。例如,如果我捕获一个越界输入值然后抛出一个自定义异常," #ERROR!"在违规的单元格中打印(很好),并在相应的弹出窗口中打印出例外的字符串(也很好)。问题是Google Apps脚本引擎还会在异常消息中附加生成异常的相应源代码行。因此,只需阅读"而不是弹出窗口,输入值必须介于0.0和1.0之间,它将读取"输入值必须介于0.0和1.0之间(第199行)&#34 ;

有没有办法抑制行号的打印,或覆盖弹出式消息?我希望能够为我的用户抛出自定义错误并提供详细的错误消息。但是我不希望他们被与他们无关的行号的引用混淆。

3 个答案:

答案 0 :(得分:1)

这是一个报道的问题。

访问Issue 4422,明星投票和更新。

答案 1 :(得分:0)

{{1}}

答案 2 :(得分:0)

使用try...catch和错误对象的message属性,然后返回错误消息而不是抛出错误。即:

/**
 *
 * @customfunction
 */
function myDiv(dividend,divisor){
  var quotient;
  try{
     quotient = dividend / divisor;
  } catch(error) {
     quotient = error.message;
  } finally {
     return quotient;
  }

}

参考