0

GAS_library という名前のスプレッドシートに、GAS というプロジェクト名の「ライブラリ」を作成しました。ライブラリ プロジェクトには 2 つのバージョンが定義されています。

同じスプレッドシート ファイルに GAS_testing という別のプロジェクトを作成しました。

プロジェクト「GAS_testing」には、「test_get_set.gs」と「GAS_stubs」の 2 つのファイルがあります。

ファイル「test_get_set.gs」で、「GAS」プロジェクトのいくつかのルーチンをテストするためのルーチンを作成しました。

ファイル「GAS_stubs」には、一連の「スタブ」ルーチンがあります。それらの目的は、アプリケーション内のすべての呼び出しで「GAS」修飾子をコーディングする必要なく、GAS ライブラリ関数のローカル定義を提供することです。「スタブ」ルーチンが行うことは、先頭の「GAS」で同じ関数を呼び出すことだけです。修飾子。

「GAS」プロジェクトのプロジェクト プロパティを取得し、それを現在のバージョンの「GAS_testing」プロジェクトで定義しました (2)。「開発モード」を「はい」に設定しています。

「test_get_set」関数を (デバッグなしで) 実行すると、実行は最後まで進みますが、少なくとも 1 つの間違った値が返されます。デバッグするために、エディターで小さな「バグ」アイコンを押しました。

これを行うたびに、「申し訳ありませんが、サーバーエラーが発生しました - 待ってからやり直してください」というエラーメッセージが常に表示されます。どれだけ待ってもかまわないようです。

コール「トレースバック」スタックは次を示します: gas_var_alert[19] gas_var_msg[27] GAS_stubs: gas_var_msg[43] test_get_set: test_get_set[6]。

スプレッドシートの「タブ」で、Browser.msgBox の表示に、エラーが発生したときまたはその直前に渡されたテキストが表示されていることに気付きました。メッセージボックスの「OK」ボタンを押しても問題は解決しません。

GAS.gas_var_alert ルーチンの唯一の機能は、渡された入力パラメーターを使用して Browser.msgBox コマンドを発行することです。GAS.gas_var_msg ルーチンの機能は、入力パラメータの周りにフォーマット テキストを追加し、それを gas_var_alert 関数に渡すことです。

デバッガー/サーバーが失敗する理由について何か考えはありますか? 私はこの環境に精通しています。

どんな助けでも大歓迎です。

4

2 に答える 2

1

Browser.msgBox()他の機能とは異なる動作をするため、Issue 1267に記載されているようなエラーが発生する可能性があります。

于 2012-06-30T00:12:40.710 に答える
0

追加のテストと調査を行った後、次のことがわかりました。

デバッグ モード実行 (ブレーク ポイントなし) での Google サービスへの最初の呼び出しがライブラリ ルーチンで発生すると、警告メッセージ (赤色) が表示されます。 " (解散)。

さらにテストした結果、1) エラーが報告されていても、トラックバックは正しいことがわかりました。2) このエラー メッセージは無視できます (閉じる必要があります)。スクリプトは引き続きデバッグ モードで実行されます。Google サービスへの独自の呼び出しを発行する呼び出しルーチンに戻り、デバッグ プロセスはその時点で停止します。3) ブレーク ポイントを設定しない場合、デバッグ サービスは各 Google サービス コールで自動的に中断します。

于 2012-06-25T20:38:21.943 に答える