9

在 Google 表格(如 Excel 等)中,如果用户在公式中输入错误的输入,错误代码将打印在有问题的单元格中,并且一个小弹出窗口会提供有关错误的更多详细信息。所以如果我输入 '=SQRT(-1)', '#NUM!' 打印在单元格中,并且弹出窗口说明该值需要等于或大于 0。

如何使用 Google 表格中的自定义函数复制此内容?抛出异常通常有效。例如,如果我捕获一个越界输入值,然后抛出一个自定义异常,“#ERROR!” 打印在有问题的单元格中(这很好),异常的随附字符串打印在相应的弹出窗口中(这也很好)。问题在于 Google Apps 脚本引擎还将生成异常的相应源代码行附加到异常消息中。因此,弹出窗口不会简单地显示“输入值必须介于 0.0 和 1.0 之间”,而是会显示“输入值必须介于 0.0 和 1.0 之间(第 199 行)”。

有什么方法可以抑制行号的打印,或者覆盖弹出的消息?我希望能够抛出自定义错误并为我的用户提供详细的错误消息。但我不希望他们因引用与他们无关的行号而感到困惑。

4

3 回答 3

7
if (some_condition)
{
  // will end execution with error    
  throw 'Error. My custom error description.';
}
于 2018-03-30T14:16:19.653 回答
3

这是一个报告的问题。

访问Issue 4422,为它加注星标以进行投票和更新。

于 2015-06-02T18:13:56.427 回答
0

Use try...catch and the message property of the error object, then return the error message instead of throwing an error. I.E.:

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

}

Reference

于 2020-06-14T00:02:45.763 回答