在Google Sheets(与Excel等)中,如果用户在公式中输入错误的输入,错误代码将打印在有问题的单元格中,并且一个小弹出窗口提供有关错误的更多详细信息。因此,如果我输入
=SQRT(-1)
,则会在单元格中打印 #NUM!
,并且弹出窗口会解释该值需要等于或大于 0。
如何使用 Google 表格中的自定义函数复制此内容?抛出异常大多有效。例如,如果我捕获越界输入值,然后抛出自定义异常,则
#ERROR!
会打印在有问题的单元格中(这很好),并且异常的伴随字符串会打印在相应的弹出窗口中(其中也很好)。问题在于 Google Apps 脚本引擎还将生成异常的相应源代码行附加到异常消息中。因此,弹出窗口不会简单地显示 “输入值必须介于 0.0 和 1.0 之间”,而是显示 “输入值必须介于 0.0 和 1.0 之间(第 199 行)”。
有什么方法可以抑制行号的打印,或者覆盖弹出窗口的消息吗?我希望能够抛出自定义错误并为我的用户提供详细的错误消息。但我不希望他们因引用与他们无关的行号而感到困惑。
if (some_condition)
{
// will end execution with error
throw 'Error. My custom error description.';
}
这是已报告的问题。
访问问题 4422,为其加注星标以进行投票和更新。
使用
try...catch
和错误对象的 message 属性,然后返回错误消息而不是抛出错误。即:
/**
*
* @customfunction
*/
function myDiv(dividend,divisor){
var quotient;
try{
quotient = dividend / divisor;
} catch(error) {
quotient = error.message;
} finally {
return quotient;
}
}
参考