การจัดการข้อผิดพลาดและคําเตือนในสคริปต์ของคุณ

สคริปต์ส่งกลับข้อผิดพลาดเฉพาะเมื่อคุณเพิ่มเอนทิตีที่มีค่าที่ไม่ถูกต้องเท่านั้น ตัวอย่างเช่น ถ้าคุณพยายามเพิ่มเอนทิตีคําสําคัญด้วยจํานวนการเสนอราคาที่ไม่ถูกต้อง การดําเนินการสร้างจะล้มเหลวและส่งคืนข้อผิดพลาดอย่างน้อยหนึ่งรายการ

        var operation = adGroup.newKeywordBuilder()
            .withText(keywordText)
            .withCpc(-5)
            .build();

        if (operation.isSuccessful()) {
            var keyword = operation.getResult();
            Logger.log(`Added keyword, ${keyword.getText()}.`);
        }
        else {
            // The bid amount is not valid, so this path executes
            for (var error of operation.getErrors()) {
                Logger.log(error);
            }
        }

อย่างไรก็ตาม ถ้าคุณพยายามอัปเดตคุณสมบัติของเอนทิตีด้วยค่าที่ไม่ถูกต้อง สคริปต์จะไม่ส่งกลับข้อผิดพลาด สคริปต์จะเขียนข้อความแสดงข้อผิดพลาดลงใน บันทึกการเปลี่ยนแปลง แทน และโค้ดของคุณยังคงดําเนินการต่อไป ตัวอย่างเช่น โค้ดต่อไปนี้พยายามตั้งค่าการเสนอราคา CPC ของกลุ่มโฆษณา เนื่องจากจํานวนค่าไม่ถูกต้อง การโทรจะล้มเหลวโดยไม่มีการแจ้งให้ทราบ สคริปต์จะดําเนินการต่อ และข้อความแสดงข้อผิดพลาดจะถูกเขียนลงในบันทึกการเปลี่ยนแปลง

function main() {
    var adGroup = AdsApp.adGroups().get().next();
    adGroup.bidding().setCpc(-5);
}

หมายเหตุ

แม้ว่าคุณอาจถูกล่อลวงให้เรียก getCpc method หลังจากตั้งค่าเพื่อยืนยันว่าการอัปเดตสําเร็จ แต่อย่าทําเช่นนั้น การเรียกเมธอด get หลังจากเรียกใช้เมธอด set จะลดประสิทธิภาพการทํางานลงด้วยการกําจัดฟีเจอร์การอัปเดตชุดงาน สําหรับข้อมูลเพิ่มเติม ให้ดู การอัปเดตเป็นชุดในหลักปฏิบัติที่ดีที่สุด

ข้อผิดพลาดอื่นๆ เช่น ข้อผิดพลาดขณะทํางานหรือความล้มเหลวในการเรียกคืนเอนทิตีจะทําให้การดําเนินการสคริปต์หยุดทํางาน เมื่อเกิดเหตุการณ์นี้ขึ้น ข้อความแสดงข้อผิดพลาดจะถูกเขียนลงในบันทึกข้อความ โค้ดต่อไปนี้พยายามเรียกใช้ foo() ฟังก์ชัน แต่เนื่องจากไม่ได้กําหนดฟังก์ชัน สคริปต์จึงยุติการดําเนินการ

function main() {
    foo(); // The script stops because foo() is undefined and generates a reference error
    Logger.log('This line is never logged!');
}

คุณควรตรวจสอบข้อความทั้งหมดที่บันทึกไว้ในบันทึกการเปลี่ยนแปลงและบันทึกข้อความเสมอ