谷歌应用程序脚本网络应用程序中的异常处理

时间:2017-10-04 10:32:30

标签: javascript web-applications google-apps-script

我想在google apps脚本中编写try catch错误处理机制。我已经部署了一个Web应用程序,我想如果无论如何以脚本编写的函数的任何部分都无法执行,我想在浏览器屏幕上放置自定义消息。

让我们参加计划...... 第一个将被执行的方法

function doGet(e){
  //Calling method
  methodCall();
  return HtmlService.createHtmlOutputFromFile('success');
}

现在假设,在方法调用内部存在一些容易出错的行,如果提供不正确的输入则会导致错误。那么我怎么能捕获这个错误并在浏览器上显示自定义错误消息而不是成功文件的内容。

function methodCall(){
   //Call to some Google API
  try{
    DriveApp.getFiles();
  }catch(err){
    return HtmlService.createHtmlOutput("<p>Custom error message</p>"); 
  } 
}

因此,在加载页面结束时,用户可以在浏览器上看到自定义错误消息。

1 个答案:

答案 0 :(得分:0)

我对网络应用程序不太熟悉,也没有测试下面的代码,但它应该起作用,或者至少可以给你一些东西。

有几件事。

  1. 创建一个变量来存储从methodCall()函数返回的值。

  2. methodCall()函数中,您无法返回HtmlService,而是在出现错误时返回您要输出的消息。如果没有错误,则不返回任何内容。

  3. doGet(e)检查var response中,如果没有返回任何内容,则返回任何内容都将为false,这将是真的,然后在doGet中返回您的Html。

    < / LI>
  4. 在您的代码中,如果createHtmlOutputFromFile('success');createHtmlOutput('success'),则 function doGet(e){ //Calling method var response = methodCall(); if(response){ return HtmlService.createHtmlOutput(response); } else { return HtmlService.createHtmlOutputFromFile('success'); } function methodCall(){ //Call to some Google API try{ DriveApp.getFiles(); }catch(err){ return "<p>Custom error message</p>"; } return; }

    while