การจัดการข้อผิดพลาดและคําเตือนในสคริปต์ของคุณ
เวลาเดียวที่สคริปต์ส่งกลับข้อผิดพลาดคือเมื่อคุณเพิ่มเอนทิตีที่มีค่าที่ไม่ถูกต้อง ตัวอย่างเช่น หากคุณพยายามเพิ่มเอนทิตีคําสําคัญที่มีจํานวนการเสนอราคาที่ไม่ถูกต้อง การดําเนินการสร้างจะล้มเหลวและส่งกลับข้อผิดพลาดอย่างน้อยหนึ่งรายการ
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!');
}
คุณควรตรวจทานข้อความทั้งหมดที่บันทึกไปยังแฟ้มบันทึกการเปลี่ยนแปลงและแฟ้มบันทึกข้อความเสมอ