9

Google スプレッドシート (Excel などと同様) では、ユーザーが数式に不適切な入力を入力すると、問題のあるセルにエラー コードが出力され、小さなポップアップにエラーの詳細が表示されます。「=SQRT(-1)」と入力すると、「#NUM!」がセルに出力され、値が 0 以上である必要があることがポップアップで説明されます。

これを Google スプレッドシートのカスタム関数で複製するにはどうすればよいですか? 例外をスローすると、ほとんどの場合機能します。たとえば、範囲外の入力値をキャッチしてカスタム例外をスローすると、"#ERROR!" になります。問題のあるセルに出力され (問題ありません)、例外に付随する文字列が対応するポップアップに出力されます (これも問題ありません)。問題は、Google Apps Script エンジンが、例外を生成した対応するソース コード行も例外メッセージに追加することです。そのため、単に「入力値は 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

エラー オブジェクトの message プロパティを使用try...catchし、エラーをスローする代わりにエラー メッセージを返します。いいえ:

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

}

参照

于 2020-06-14T00:02:45.763 に答える