【发布时间】:2015-12-27 04:36:22
【问题描述】:
我有一个服务器端和客户端 GAS 应用程序。客户端需要在服务器上运行一个函数。如果出于任何原因(例如没有互联网连接),连接不成功,我希望它能够优雅地提醒用户。我试过这个,但它不起作用:
try{
google.script.run
.withSuccessHandler(onSuccess)
.myFunction();
return;
}
catch(e){
alert('Cannot connect to server: ' + e.message());
}
使用 Chrome 46,控制台正确地吐出错误:“net::ERR_INTERNET_DISCONNECTED”。但是,警报不会出现。控制台还显示:“Uncaught NetworkError: Connection failure due to HTTP 0”。
为什么我无法捕捉到异常?
编辑:正如这里所解释的 (https://softwareengineering.stackexchange.com/questions/144326/try-catch-in-javascript-isnt-it-a-good-practice),也许它与调用的异步性质有关。有人可以确认吗?
【问题讨论】:
-
您是否尝试过使用“withFailureHandler”功能? developers.google.com/apps-script/guides/html/…
-
是的,但在这里无关紧要。当调用的原始函数抛出异常时,withFailureHandler (f) 将控制权移交给“f”。在这里,原始函数永远不会被调用,因为在发出请求之前 Internet 已断开连接。这就是我想要检测的条件。
标签: javascript google-apps-script exception-handling connection