Google Apps Script:
Hantera fel
Hur man gör:
Google Apps Script, som är baserat på JavaScript, tillåter oss att använda det traditionella try-catch
-uttrycket för felhantering, tillsammans med finally
om städning krävs oavsett framgång eller fel.
function myFunction() {
try {
// Kod som kan orsaka ett fel
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getRange("A1").getValue();
if (data === "") {
throw new Error("Cell A1 är tom.");
}
Logger.log(data);
} catch (e) {
// Kod för felhantering
Logger.log("Fel: " + e.message);
} finally {
// Städkod, utförd oavsett om ett fel uppstod eller inte
Logger.log("Funktionen slutförd.");
}
}
Exempel på utskrift utan fel:
[Värde i cell]
Funktionen slutförd.
Exempel på utskrift med ett fel (om man antar att A1 är tom):
Fel: Cell A1 är tom.
Funktionen slutförd.
Google Apps Script stöder också att kasta anpassade fel med Error
-objektet och att fånga specifika feltyper vid behov. Dock gör avsaknaden av avancerad felfördelning det nödvändigt att förlita sig på felmeddelanden för specifika detaljer.
Fördjupning
Historiskt sett har felhantering i skriptspråk som JavaScript (och därmed Google Apps Script) varit mindre sofistikerad än i vissa kompilerade språk, vilka erbjuder funktioner som detaljerade undantagshierarkier och omfattande felsökningsverktyg. Google Apps Scripts modell är relativt enkel, vilket använder JavaScripts try-catch-finally
-paradigm. Denna enkelhet är i linje med språkets design för att snabbt utveckla och distribuera applikationer i små till medelstora skala inom Googles ekosystem, men det kan ibland begränsa utvecklare som hanterar komplexa felscenarier.
I mer komplexa applikationer kompletterar programmerare ofta Google Apps Scripts inbyggda felhantering med anpassad loggning och rapportering av fel. Detta kan inkludera att skriva fel till ett Google-kalkylblad för revision eller att använda tredjepartstjänster för loggning genom Google Apps Scripts URL Fetch-tjänster för att skicka felinformation ut ur skriptmiljön.
Även om Google Apps Script kanske ligger efter språk som Java eller C# när det gäller inbyggd komplexitet och kapacitet för felhantering, gör dess integration med Googles tjänster och enkelheten hos try-catch-finally
-tillvägagångssättet det till ett kraftfullt verktyg för utvecklare att snabbt automatisera uppgifter och skapa integrationer inom Googles ekosystem. Utvecklare från andra bakgrunder kan finna att utmaningen inte ligger i att bemästra komplexa mönster för felhantering, men i att kreativt utnyttja det som finns tillgängligt för att säkerställa att deras skript är robusta och användarvänliga.