Javascript google应用程序脚本web应用程序中的异常处理

Javascript google应用程序脚本web应用程序中的异常处理,javascript,web-applications,google-apps-script,Javascript,Web Applications,Google Apps Script,我想在GoogleApps脚本中编写try-catch错误处理机制。我已经部署了一个web应用程序,我希望不管怎样,如果用脚本编写的函数的任何部分无法执行,我希望在浏览器屏幕上显示自定义消息 让我们一起看节目吧。。。 将执行的第一个方法 function doGet(e){ //Calling method methodCall(); return HtmlService.createHtmlOutputFromFile('success'); } 现在,让我们假设,在方法调用中有

我想在GoogleApps脚本中编写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>"); 
  } 
}
函数方法调用(){
//调用一些googleapi
试一试{
获取文件();
}捕捉(错误){
返回HtmlService.createHtmlOutput(“自定义错误消息”

”; } }

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

我对Web应用不太熟悉,也没有测试过下面的代码,但它应该可以工作,或者至少可以让您继续

有几件事

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

  • methodCall()
    函数中,如果出现错误,则不能返回HtmlService,而是返回要输出的消息。如果没有错误,则返回nothing

  • 在您的
    doGet(e)
    检查
    var响应
    如果未返回任何内容,则返回的内容将为false如果返回了任何内容,则返回的内容将为true,然后在doGet中返回Html

  • 在您的代码中有
    createHtmlOutFromFile('success')应该是
    createHtmlOutput('success')

    函数doGet(e){
    //调用方法
    var response=methodCall();
    如果(答复){
    返回HtmlService.createHtmlOutput(响应);
    }否则{
    返回HtmlService.createHtmlOutFromFile('success');
    }
    函数methodCall(){
    //调用一些googleapi
    试一试{
    获取文件();
    }捕捉(错误){
    返回“自定义错误消息”

    ”; } 返回; }

  • 我对网络应用不太熟悉,也没有测试过下面的代码,但它应该可以工作,或者至少可以让你继续下去

    有几件事

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

  • methodCall()
    函数中,您不能返回HtmlService,如果出现错误,则返回要输出的消息。如果没有错误,则不返回任何内容

  • 在您的
    doGet(e)
    检查
    var响应
    如果未返回任何内容,则返回的内容将为false如果返回了任何内容,则返回的内容将为true,然后在doGet中返回Html

  • 在您的代码中有
    createHtmlOutfromFile('success');
    应该是
    createHtmlOutput('success')

    函数doGet(e){
    //调用方法
    var response=methodCall();
    如果(答复){
    返回HtmlService.createHtmlOutput(响应);
    }否则{
    返回HtmlService.createHtmlOutFromFile('success');
    }
    函数methodCall(){
    //调用一些googleapi
    试一试{
    获取文件();
    }捕捉(错误){
    返回“自定义错误消息”

    ”; } 返回; }
  •  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; 
    }