การจัดการอากาศช่วยให้เราปล่อยให้สคริปต์ทำงานต่อไปได้ แม้ว่าจะมีข้อผิดพลาดก็ตาม
มาลองใช้ตัวอย่างเพื่อแสดงให้คุณเห็นว่าเราสามารถจัดการข้อผิดพลาดและ Python ได้อย่างไร
สมมติว่าเราต้องการสร้างโปรแกรมที่ช่วยให้เราสามารถป้อนข้อมูลของผู้ใช้ได้
สมมติว่าเราถามผู้ใช้สำหรับ H ดังนั้นเราจึงใช้พรอมต์อินพุตและพูดว่า H ของคุณคืออะไร
แล้วที่นี่ สิ่งที่เราจะทำก็แค่พิมพ์ตัว H
โปรแกรมที่ดีและเรียบง่าย
ถ้าฉันเรียกใช้สิ่งนี้
และฉันพิมพ์ สมมุติว่า สิบ
ไปเลย
ทุกอย่างกำลังทำงาน
แต่ถ้าฉันไม่ใส่ตัวเลขแล้วไปแบบนี้ล่ะ?
นั่นยังใช้ได้อยู่
แต่นั่นคือสิ่งที่ฉันต้องการจะทำกับโปรแกรมของฉันหรือไม่?
บางทีฉันอาจต้องการป้อนอายุและคำนวณว่าพวกเขาสามารถเล่นเกมได้หรือไม่ ไม่ว่าพวกเขาจะอายุ
18 ปีขึ้นไป
เราจะแก้ไขปัญหานี้ได้อย่างไร
อย่างนึงที่เราทำได้คือใส่ int เข้าไป จริงไหม?
ดังนั้นเราจึงแปลงสิ่งที่ผู้ใช้ให้เราเป็นจำนวนเต็มเพื่อที่ว่าถ้าฉันเรียกใช้สิ่งนี้
และฉันพิมพ์สิ่งนี้
โอ้ ฉันได้รับข้อผิดพลาด ข้อผิดพลาดของค่า ไม่ถูกต้องตามตัวอักษรสำหรับ int
ฉันกำลังพยายามแปลง
นี่เป็นจำนวนเต็ม แต่มันบอกว่ามีข้อผิดพลาด
ฉันไม่สามารถทำอย่างนั้นได้
แล้วเราจะแก้ไขปัญหานี้ด้วยการจัดการข้อผิดพลาดใน Python ได้อย่างไร?
เราสามารถทำได้ด้วยวิธีนี้
เรามีไตรห่วง เรามีคีย์เวิร์ดไตรที่บอกว่า เฮ้ ฉันต้องการให้คุณลองใช้โค้ดชิ้นนี้ และเราต้องทำให้แน่ใจว่าเราเยื้องมัน
ดังนั้นเราจึงลองใช้โค้ดชิ้นนี้
ตอนนี้สิ่งที่เกิดขึ้นภายในบล็อกของเผ่า
ฉันสามารถจัดการได้
ดูว่าการจัดการมาจากไหน
AYRES ด้วยคีย์เวิร์ดยกเว้น
และยกเว้น
พูดว่าเฮ้
ถ้ามีอะไรอยู่ในนี้ในบล็อกสาม ถ้ามีอะไรออกอากาศ ฉันอยากให้คุณพูดอะไรบางอย่าง
ดังนั้นแทนที่จะมีอากาศสีแดงที่ออกจากโปรแกรมให้ทำอย่างอื่น
ทำเช่นนี้.
ดังนั้นฉันจะพูด
พิมพ์.
กรุณากรอกตัวเลข
มาดูกันว่าตอนนี้จะเกิดอะไรขึ้น
ถ้าฉันคลิกเรียกใช้
ฉันอายุเท่าไหร่
ฉันจะเขียนแต่เรื่องไร้สาระ
และดูว่าฉันได้รับ
กรุณากรอกตัวเลข
ฉันกำลังจัดการกับข้อผิดพลาดของฉันที่นี่โดยใส่โค้ดทั้งหมดลงในบล็อก try เพื่อที่ฉันจะได้คัดลอกและวาง
เพิ่มไฟล์ทั้งหมดของฉันที่นี่ วางไว้ในบล็อก try และสิ่งที่จะเกิดขึ้นคือแทนที่จะออกอากาศรายการก่อนหน้านี้
โปรแกรมของฉันขัดข้อง มันจะเรียกใช้โค้ดนี้ จากนั้นจะพูดว่า เฮ้ ถ้าภายในบล็อกนี้
มีอะไรเกิดขึ้น เราจะจับมันไว้ที่นี่ด้วยบล็อกการยอมรับ และฉันก็ได้ยิน
ทำทุกอย่างที่ฉันต้องการ
ในกรณีของฉัน ฉันสามารถพูดได้ว่า เฮ้ โปรดป้อนหมายเลขของเรา
แต่เรามีปัญหาของเราที่นี่ใช่ไหม
โปรแกรมเพิ่งสิ้นสุดและเราต้องการให้ดำเนินการต่อไป
ต้องกดรันอีกครั้งแล้วขอตัว H อีกครั้ง
แล้วเราจะแน่ใจได้อย่างไรว่าเราทำงานนี้ต่อไปจนกว่าผู้ใช้จะป้อนข้อมูลที่ถูกต้อง
เราเคยเห็นสิ่งนี้มาก่อน
เราสามารถทำ while loop และพูด while true ได้
รอนนี้.
และถ้าสิ่งนี้ได้ผล
เราหวังว่าจะได้ค่า h ลองดูว่าถ้าฉันคลิก run ค่า H ของฉันคืออะไร
ไม่.
กรุณาใส่หมายเลขของคุณ
คุณอายุเท่าไหร่
เรามาลองทำลายมันกันอีกครั้ง
กรุณากรอกตัวเลข
ก็ได้ ไม่เป็นไร
อายุของฉันคือสิบ
ไปเลย
ฉันได้รับชื่อสิบ แต่
โอ้ มันยังคงถามฉันว่าอายุเท่าไหร่?
เป็นการดีที่ฉันต้องการแยกออกจากข้อความจริงนี้
ถูกต้อง.
แล้วฉันจะทำอย่างนั้นได้อย่างไร?
ฉันสามารถใช้สิ่งที่เราเรียกในที่นี้ว่า บล็อกอื่น ซึ่งเราเคยเห็นมาก่อน
แต่ใช้งานได้กับลองยกเว้นบล็อก
เราใส่ตอนจบ มันบอกว่า เฮ้ ลองนี่สิ
หากมีข้อผิดพลาดให้ทำสิ่งนี้
แต่ถ้าไม่มีข้อผิดพลาด ให้ทำสิ่งนี้
ในกรณีของเรา เราบอกได้เลยว่า break
และคุณรู้อะไรไหม
เรายังพิมพ์ได้
ขอขอบคุณ.
เราสบายดี ถ้าฉันหยุดและวิ่งอีกครั้ง และฉันให้อายุแก่พวกเขา
ไปเลย
เราเสร็จแล้ว
เราหลุดออกจากวงและทุกอย่างเป็นไปด้วยดี
และบล็อก tri ยอมรับ ls นี้สามารถไปได้ทุกที่
เราสามารถห่อไฟล์ทั้งหมดของเราในการลอง ยกเว้นบล็อกอื่น
เราสามารถเพิ่มมันเข้าไปในฟังก์ชันของเราภายในฟังก์ชันแต่ละตัวของเรา อะไรก็ได้ที่เราต้องการ เราก็สามารถใช้ได้
นี่เป็นเพียงเครื่องมืออื่นที่ Python ให้เราจัดการกับข้อผิดพลาด
แต่ขอถามอะไรหน่อย
ถ้าฉันพิมพ์แทนการพิมพ์ สมมุติว่า สิบหารด้วยอายุ
ถ้าฉันเรียกใช้โปรแกรมของฉัน
และฉันพิมพ์ที่นี่เป็นศูนย์และเข้า
โอ้ ฉันเข้าไปแล้ว
กรุณาใส่หมายเลขของเรา
แต่ฉันป้อนหมายเลข
นี่เป็นโปรแกรมบั๊กกี้
แม้ว่าฉันจะพิมพ์ตัวเลข แต่ก็ยังมีข้อความแสดงข้อผิดพลาดเหมือนเดิม
แล้วเราจะจัดการกับเรื่องนี้อย่างไร?
เราจะจัดการกับข้อผิดพลาดต่างๆ ได้อย่างไร ข้อผิดพลาดหนึ่งคือข้อผิดพลาดด้านค่าและข้อผิดพลาดในการแบ่งศูนย์อย่างชัดเจน
ในบล็อกการยอมรับ ฉันสามารถให้ข้อผิดพลาดประเภทใดที่ฉันต้องการจัดการได้
และจำไว้ว่าสิ่งเหล่านี้สร้างขึ้นจากข้อผิดพลาด ซึ่งฉันสามารถคัดลอกและวางได้
ในกรณีของฉัน ฉันอยากจะบอกว่านี่เป็นข้อผิดพลาดของค่า ดังนั้นถ้าฉันเรียกใช้โปรแกรมของฉัน
และฉันพิมพ์เป็นศูนย์
โอ้ ฉันได้รับอากาศของฉัน
ยกเว้นการล็อคยอมรับเฉพาะค่า
ข้อผิดพลาด
ข้อผิดพลาดอื่น ๆ ที่ไม่สนใจ
อืม.
แล้วเรามาทำอะไรที่นี่?
ทางเลือกหนึ่งคือคัดลอกตรงนี้แล้วพูดว่า เฮ้ ลองเพิ่มอีกอัน ยกเว้นในกรณีนี้ ฉันต้องการข้อผิดพลาดในการหารศูนย์
ในกรณีที่ผู้ใช้ป้อนศูนย์ คุณสามารถพูดได้ว่า โปรดป้อน h ให้สูงกว่าศูนย์
เพื่อที่ว่าถ้าฉันเรียกใช้สิ่งนี้ตอนนี้
และฉันได้ศูนย์ ฉันได้โปรดป้อน h ที่สูงกว่าศูนย์
ถ้าฉันพูดพล่อยๆ
อ๊ะ
ถ้าฉันพูดพล่อยๆ ฉันได้รับโปรดป้อนตัวเลข
ถ้าสุดท้ายผมป้อนตัวเลขให้ดูที่
ขอขอบคุณ.
ทุกอย่างกำลังทำงาน
นี่คือคำถามของฉัน
จะเกิดอะไรขึ้นถ้าเราเข้าไป?
ข้อผิดพลาดค่าอื่นที่นี่
และค่าที่ผิดพลาดนี้เป็นเพียงการบอกเครื่องหมายอัศเจรีย์
เกิดอะไรขึ้น?
ฉันเข้าใจ?
โปรดป้อนตัวเลขเนื่องจากบล็อกการยอมรับนี้จะทำงานเพียงครั้งเดียว
ทันทีที่ตรวจพบข้อผิดพลาดที่ต้องการ มันก็จะทำงาน
แล้วก็กลับมาวนเวียน
ดังนั้นจะจับข้อผิดพลาดเพียงข้อเดียวเท่านั้น
มาพักสมองและเรียนรู้เพิ่มเติมเกี่ยวกับการจัดการข้อผิดพลาดในวิดีโอหน้ากัน
ลาก่อน.