แชร์ผ่าน


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

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

        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 เมธอดหลังจากการตั้งค่าเพื่อตรวจสอบว่าการอัปเดตสําเร็จแล้ว แต่อย่าทํา การเรียกวิธีการรับหลังจากเรียกเมธอดชุดจะลดประสิทธิภาพการทํางานโดยการตัดลักษณะการทํางานการอัพเดตชุดงานออก สําหรับข้อมูลเพิ่มเติม ดูการอัปเดตการแบตช์ในแนวทางปฏิบัติที่ดีที่สุด

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

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

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