Các nghiệp vụ cần xử lý try-catch trong Google Apps Script

try-catch là một công cụ mạnh mẽ trong Google Apps Script để xử lý lỗi và cải thiện độ ổn định của ứng dụng.

  1. Làm việc với Google Sheets API (Lấy và ghi dữ liệu)
  2. Gửi Email với Gmail API
  3. Tương tác với Google Drive API
  4. Sử dụng API của bên thứ ba (HTTP Request)
  5. Xử lý lỗi khi tương tác với Google Forms
  6. Thao tác với Tài nguyên Google Apps Script
  7. Xử lý Lỗi khi sử dụng setTimeout() hoặc các tác vụ không đồng bộ
  8. Kinh nghiệm chia sẽ về sử dụng try-catch

Dưới đây là một số nghiệp vụ phổ biến trong Google Apps Script mà bạn nên xem xét sử dụng try-catch để xử lý lỗi

1. Làm việc với Google Sheets API (Lấy và ghi dữ liệu)

Các thao tác với Google Sheets có thể gặp lỗi như: ô không tồn tại, bảng tính bị khóa, hoặc quyền truy cập bị hạn chế.

Những vấn đề này xác suất xảy ra >0%, luôn có thể xảy ra, nếu ta không bẫy lỗi thì khi vận hành sẽ

- Gây xung đột code (có thể)
- Nếu làm ứng dụng cho khách hàng thì thông báo lỗi (toàn lỗi hệ thống) gây khách hàng rối khi sử dụng, khó giúp khách hàng sử dụng app của chúng ta tìm ra cách xử lý nhanh nhất.
        * Thay vì báo câu lỗi tiếng anh rất dài thì chỉ cần báo câu đơn giản là "Spreadsheet chưa cấp quyền, hãy cấp quyền gmail được truy cập Spreadsheet" .

Ví dụ:

  try {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
    if (!sheet) {
      throw new Error("Bảng tính 'Sheet1' không tồn tại!");
    }
    sheet.getRange("A1").setValue("Hello, Apps Script!");
  } catch (e) {
    Logger.log("Lỗi xảy ra: " + e.message);
  }


    Mô tả code: Trong trường hợp bảng tính không tồn tại hoặc không thể truy cập, catch sẽ bắt lỗi và in thông báo lỗi ra Logs.

2. Gửi Email với Gmail API

Gửi email có thể gặp lỗi nếu địa chỉ email không hợp lệ hoặc gặp vấn đề về kết nối. Việc sử dụng try-catch giúp xử lý các tình huống như vậy.

Ví dụ:

  try {
    var recipient = "example@domain.com";
    var subject = "Test Email";
    var body = "This is a test email.";
    
    MailApp.sendEmail(recipient, subject, body);
  } catch (e) {
    Logger.log("Không thể gửi email: " + e.message);
  }


    Mô tả: Nếu không thể gửi email (ví dụ: địa chỉ email không hợp lệ hoặc dịch vụ Gmail bị gián đoạn), lỗi sẽ được bắt và thông báo lỗi sẽ được in ra.

3. Tương tác với Google Drive API

Khi làm việc với các tài liệu trong Google Drive, có thể xảy ra các lỗi như không tìm thấy file hoặc không có quyền truy cập.

Ví dụ:

  try {
    var fileId = "INVALID_FILE_ID"; // Ví dụ về ID không hợp lệ
    var file = DriveApp.getFileById(fileId);
    Logger.log("File Name: " + file.getName());
  } catch (e) {
    Logger.log("Lỗi khi mở file: " + e.message);
  }


    Mô tả: Nếu ID file không hợp lệ hoặc bạn không có quyền truy cập, lỗi sẽ được bắt và thông báo lỗi sẽ được ghi vào Logs.

4. Sử dụng API của bên thứ ba (HTTP Request)

Khi làm

Ví dụ:

  try {
    var url = "https://api.example.com/data";
    var response = UrlFetchApp.fetch(url);
    var json = JSON.parse(response.getContentText());
    Logger.log(json);
  } catch (e) {
    Logger.log("Lỗi khi gọi API: " + e.message);
  }

    Mô tả: Nếu không thể kết nối với API hoặc phản hồi từ API không hợp lệ, lỗi sẽ được bắt và thông báo lỗi sẽ được ghi vào Logs.

5. Xử lý lỗi khi tương tác với Google Forms

Nếu bạn đang làm việc với Google Forms và có thể gặp lỗi khi thêm câu hỏi, lấy thông tin từ form, hoặc nếu form không tồn tại.

   try {
    var form = FormApp.openById("INVALID_FORM_ID");
    var responses = form.getResponses();
    Logger.log(responses);
  } catch (e) {
    Logger.log("Lỗi khi lấy phản hồi từ form: " + e.message);
  }

    Mô tả: Nếu không thể mở form (ví dụ: ID form không hợp lệ hoặc quyền truy cập bị hạn chế), lỗi sẽ được bắt và thông báo lỗi sẽ được ghi vào Logs.

6. Thao tác với Tài nguyên Google Apps Script

Các lỗi có thể xảy ra khi tương tác với các API của Google Apps Script, như lỗi khi mở hoặc chỉnh sửa tài liệu.

Ví dụ:

  try {
    var doc = DocumentApp.openById("INVALID_DOC_ID");
    doc.getBody().appendParagraph("Hello!");
  } catch (e) {
    Logger.log("Lỗi khi mở tài liệu: " + e.message);
  }

    Mô tả: Nếu không thể mở tài liệu (ví dụ: ID tài liệu không hợp lệ hoặc quyền truy cập bị hạn chế), lỗi sẽ được bắt và thông báo lỗi sẽ được ghi vào Logs.

7. Xử lý Lỗi khi sử dụng setTimeout() hoặc các tác vụ không đồng bộ

Mặc dù Google Apps Script không hỗ trợ xử lý các tác vụ không đồng bộ như JavaScript, nhưng bạn có thể xử lý các tác vụ có thể gặp lỗi như hàm chạy chậm hoặc hết thời gian.

Ví dụ:

  try {
    // Giả sử đây là một tác vụ tốn nhiều thời gian
    Utilities.sleep(5000);  // Tạm dừng trong 5 giây
    Logger.log("Tác vụ đã hoàn thành!");
  } catch (e) {
    Logger.log("Lỗi khi thực hiện tác vụ: " + e.message);
  }

    Mô tả: Nếu có lỗi trong quá trình thực hiện tác vụ (ví dụ như quá thời gian cho phép), lỗi sẽ được bắt và thông báo lỗi sẽ được ghi vào Logs.

8. Kinh nghiệm chia sẽ về sử dụng try-catch

try-catch là một công cụ mạnh mẽ trong Google Apps Script để xử lý lỗi và cải thiện độ ổn định của ứng dụng. Dưới đây là một số lý do bạn nên sử dụng try-catch:

    Ngăn chặn chương trình bị dừng đột ngột khi gặp lỗi.
    Cung cấp thông báo lỗi rõ ràng giúp dễ dàng xác định nguyên nhân và khắc phục sự cố.
    Tăng tính bền vững cho các ứng dụng đang hoạt động trong môi trường không thể dự đoán được (như các dịch vụ bên ngoài, quyền truy cập tài nguyên, vv.).

Tìm kiếm:

Bài viết liên quan:

try-catch là một công cụ mạnh mẽ trong Google Apps Script để xử lý lỗi và cải thiện độ ổn định của ứng dụng.