ส่วนที่หลีกเลี่ยงไม่ได้ของการเป็นโปรแกรมเมอร์ก็คือโปรแกรมของคุณจะมีข้อผิดพลาดมากมาย
คุณไม่สามารถหลีกเลี่ยงข้อบกพร่อง
คุณไม่สามารถหลีกเลี่ยงโปรแกรมที่พังได้
ฟังก์ชันการพิมพ์อย่างง่ายที่นี่ด้วย สมมติว่า คำที่สะกดผิด สมมติว่าไม่มีเครื่องหมายจุลภาค
ถ้าฉันเรียกใช้สิ่งนี้เราเห็นสิ่งนี้มามากใช่ไหม?
เราได้เห็นการอ่านจำนวนมากตลอดหลักสูตรนี้ มีข้อผิดพลาดมากมาย
ถ้าผมลองบวกหนึ่งบวก สมมุติว่า
จริง.
คลิกเรียกใช้
ใช้งานได้ แต่ทันใดนั้นฉันก็ตัดสินใจเพิ่มสวัสดีเข้าไป
และอีกครั้งที่เราเห็นว่าสีแดงครั้งนี้เป็นข้อผิดพลาดประเภท
ข้อผิดพลาด
ที่ทำให้โปรแกรมของเราพังแบบนี้
เรียกว่าเป็นข้อยกเว้น
และไพทอน
เพิ่มข้อยกเว้นเหล่านี้เมื่อใดก็ตามที่ล่ามพูดว่า "เฮ้ ฉันไม่รู้ว่าคุณกำลังทำอะไรอยู่ มีบางอย่างผิดปกติ
ฉันไม่รู้ว่าฉันกำลังทำอะไรอยู่
ฉันจะหยุดทุกสิ่งที่ฉันทำและจะให้ผลลัพธ์แก่คุณ
มันไม่ดีเพราะตอนนี้เรากำลังเล่นอยู่
แต่ถ้าเราเป็น Google และผู้คนต้องพึ่งพาเราเพื่อตรวจสอบอีเมลของพวกเขา ดูวิดีโอ YouTube หากโปรแกรมของเรามีข้อยกเว้นและหยุดทำงานและมีข้อผิดพลาด
นั่นก็ไม่ดี
ซึ่งอาจมีค่าใช้จ่ายหลายล้านบริษัท
แล้วเราจะจัดการกับข้อยกเว้นที่ทำให้โปรแกรมของเราขัดข้องได้อย่างไร
เราต้องการสิ่งที่เรียกว่าการจัดการข้อผิดพลาด
เป็นเรื่องปกติของการเป็นโปรแกรมเมอร์
และโปรแกรมเมอร์ที่ยอดเยี่ยมสามารถจัดการกับข้อผิดพลาดในโปรแกรมของตนได้
เพราะแทนที่จะปล่อยให้โปรแกรมของเราออกอากาศ เราสามารถจัดการกับมันได้ ดังนั้นหากเราได้รับข้อผิดพลาดประเภทเช่นนี้
เราสามารถจัดการกับข้อผิดพลาดนั้นภายในโปรแกรมของเราได้จริงๆ
และในส่วนนี้ เราจะเรียนรู้เกี่ยวกับเรื่องนี้ทั้งหมด
แต่ประเด็นสำคัญคือการจัดการข้อผิดพลาดช่วยให้เราปล่อยให้สคริปต์ Python ทำงานต่อไปได้ แม้ว่าจะมีข้อผิดพลาดก็ตาม
ฟังดูน่าสนใจใช่มั้ย?
ก่อนที่เราจะพูดถึงเรื่องนั้น เรามาพูดถึงข้อผิดพลาดบางอย่างที่มีอยู่ใน Python กันก่อน
เราเคยเห็นข้อผิดพลาดประเภทที่เราพยายามทำบางอย่างระหว่างข้อมูลสองประเภทที่เข้ากันไม่ได้
เช่น การเพิ่ม int และสตริง และข้อยกเว้นในตัวเหล่านี้ใน Python มีหลายอย่าง และฉันจะเชื่อมโยงไปยังแหล่งข้อมูลนี้
ดังนั้นคุณ สามารถดู
แต่ถ้าฉันเลื่อนดูที่นี่ คุณจะเห็นข้อผิดพลาดของแอตทริบิวต์และข้อผิดพลาดของไฟล์
เราไปต่อ เรามีชื่อผิดพลาด
เรามีข้อผิดพลาดในการอ้างอิงข้อผิดพลาดมากมายเพียงตัน
ให้ฉันเพียงแค่ผ่านบางส่วนของพวกเขาที่ค่อนข้างธรรมดา
หนึ่งคือข้อผิดพลาดทางไวยากรณ์
ถ้าฉันทำ def และสมมุติว่า
ฮู้ฮู้!
และฉันลืมเครื่องหมายอัฒภาคที่นี่ และเรียกใช้สิ่งนี้
ฉันได้รับข้อผิดพลาดทางไวยากรณ์?
ไม่ใช่ไวยากรณ์หลามมาตรฐาน
ฉันต้องแก้ไขข้อผิดพลาดของฉัน
ฉันยังสามารถรับสิ่งที่เรียกว่าข้อผิดพลาดของชื่อได้หากสมมติว่าฉันใช้ชื่อบวกเช่นนี้แล้วคลิก
ชื่อแบบนี้.
คุณสามารถดูขีดเส้นใต้สีแดงได้ที่นี่
ฉันได้รับชื่อที่ไม่ได้กำหนดไว้ ดังนั้นหากฉันเรียกใช้รหัสนี้
ฉันจะได้ชื่อ
ไม่ได้กำหนดชื่อของเธอ
เราเคยเห็นประเภทอากาศ
แต่แล้วเรื่องนี้ล่ะ?
ถ้าเรามีรายชื่อล่ะ?
เอาเป็นว่าลี
หนึ่งสองสาม.
และฉันเข้าถึงการโกหก สมมติว่าดัชนีห้า
ถ้าฉันเรียกใช้สิ่งนี้
ฉันได้รับรายการข้อผิดพลาดของดัชนี
ดัชนีอยู่นอกช่วง
ถ้าเรามีพจนานุกรมล่ะ?
สมมติว่าเรากำลังสร้างพจนานุกรมที่นี่
เราจะบอกว่าก.
เขาโทรหาฉันและฉันจะทิ้งมันไว้ที่นั่น
นี่จะเป็นพจนานุกรม
ถ้าฉันทำพจนานุกรมที่นี่และเพียงแค่พยายามเข้าถึงบางสิ่งที่ไม่มีอยู่และฉันคลิกเรียกใช้
ฉันได้รับข้อผิดพลาดเกี่ยวกับคีย์เนื่องจากกำลังเข้าถึงคีย์ที่ไม่มีอยู่
เรายังได้ สมมุติว่า 5 หารด้วยศูนย์ ซึ่งน่าจะทำให้ผมมีข้อผิดพลาดในการหารศูนย์ เพราะผมพยายามหารด้วยศูนย์
คุณก็ทำไม่ได้
ดังนั้นจึงมีข้อผิดพลาดมากมายหรือมีข้อยกเว้นในตัว Python
ตอนนี้ คุณไม่จำเป็นต้องจำสิ่งเหล่านี้
ส่วนใหญ่จะปรากฏในโปรแกรมของคุณและคุณจะรู้ว่ามันหมายถึงอะไร แต่คุณสามารถใช้เป็นข้อมูลอ้างอิงในการอ่านได้เสมอ
แต่คำถามที่คุณควรถามตัวเองคือ เราจะหลีกเลี่ยงสิ่งเหล่านี้ได้อย่างไร
เพราะโปรแกรมส่วนใหญ่ไม่ใช่แค่เราพิมพ์ข้อมูล
โดยปกติโปรแกรมจะโต้ตอบกับโลกภายนอกใช่ไหม
เมื่อฉันเข้าสู่ระบบอีเมล ฉันอนุญาตให้ผู้ใช้ใช้อีเมลและรหัสผ่าน
เมื่อฉันเล่นเกม ฉันให้ผู้ใช้ควบคุมตัวละคร
ดังนั้นโปรแกรมต่างๆ จึงมีปฏิสัมพันธ์กับโลกภายนอกอยู่เสมอ และพวกเขาต้องตรวจสอบให้แน่ใจว่าข้อมูลที่พวกเขาได้รับนั้นเป็นประเภทที่ถูกต้องตามที่พวกเขาคาดหวัง
เพราะหากพวกเขาได้รับสิ่งที่พวกเขาไม่คาดคิด เช่น ตัวเลข และตัวเลขนี้กลายเป็น
สมมุติว่าศูนย์ ที่เราให้มา
ผู้ใช้รายนี้ทำลายโปรแกรมของเรา
ดังนั้นเราจึงต้องจัดการกับสถานการณ์เหล่านี้ที่ผู้ใช้อาจให้สิ่งไม่ดีที่เราไม่ต้องการ
ในวิดีโอหน้า เราจะสำรวจว่าเราจะจัดการกับข้อผิดพลาดได้อย่างไร
เจอกันในนั้นครับ