ตรวจสอบข้อยกเว้นและวิธีการใช้ข้อยกเว้น
- 6 นาที
ก่อนหน้านี้ในโมดูลนี้คุณได้เรียนรู้ว่าข้อผิดพลาดรันไทม์ใน C# เรียกว่าข้อยกเว้นและคุณจําเป็นต้อง "ตรวจจับ" ก่อนที่พวกเขาจะหยุดการทํางานแอปพลิเคชันของคุณ จริงๆ การจับข้อยกเว้นก่อนที่พวกเขาสามารถทําให้แอปพลิเคชันของคุณหยุดทํางานเหมือนวิดีโอเกมมากกว่าการเขียนแอปพลิเคชัน ดังนั้น มันหมายความว่าอะไรที่จะ "จับ" ข้อยกเว้น? ในการตอบคําถามนั้น คุณต้องเริ่มต้นด้วยการดูรายละเอียดมากขึ้นว่าข้อยกเว้นคืออะไร
ข้อยกเว้นคืออะไร
ต่อไปนี้คือข้อกําหนดที่เป็นทางการมากขึ้นที่อธิบายถึงข้อยกเว้นและวิธีการใช้ข้อยกเว้นในแอปพลิเคชัน C#:
ใน C# ข้อผิดพลาดในโปรแกรมที่รันไทม์มีการเผยแพร่ผ่านโปรแกรมโดยใช้กลไกที่เรียกว่าข้อยกเว้น ข้อยกเว้นจะเกิดขึ้นตามโค้ดที่พบข้อผิดพลาดและถูกจับโดยโค้ดที่สามารถแก้ไขข้อผิดพลาดได้ ข้อยกเว้นอาจถูกโยนโดยรันไทม์ .NET หรือโดยโค้ดในโปรแกรม ข้อยกเว้นจะแสดงโดยคลาสที่สืบทอดมาจาก ข้อยกเว้น แต่ละคลาสระบุชนิดของข้อยกเว้นและประกอบด้วยคุณสมบัติที่มีรายละเอียดเกี่ยวกับข้อยกเว้น
สําคัญ
การฝึกอบรมนี้ไม่จําเป็นต้องมีความเข้าใจอย่างลึกซึ้งเกี่ยวกับคลาส .NET ไม่ต้องกังวลถ้าข้อกําหนดนี้สับสนเล็กน้อย คุณสามารถใช้ข้อยกเว้นในโค้ดของคุณโดยไม่มีความเข้าใจอย่างลึกซึงเกี่ยวกับคลาส
เอกสารของ Microsoft เกี่ยวกับข้อยกเว้นจะลงรายละเอียดอย่างมาก อย่างไรก็ตาม ข้อกําหนดนี้มีข้อมูลที่คุณต้องการในตอนนี้ โดยเฉพาะอย่างยิ่ง คุณจําเป็นต้องทําความเข้าใจสองสิ่งต่อไปนี้:
- คุณต้องเข้าใจว่าข้อยกเว้นคืออะไร
- คุณจําเป็นต้องทําความเข้าใจวิธีการใช้ข้อยกเว้นในแอปพลิเคชันของคุณ
คุณสามารถนึกภาพข้อยกเว้นเป็นตัวแปรที่มีความสามารถพิเศษ คุณสามารถทําสิ่งประเภทเดียวกันกับข้อยกเว้นที่คุณทํากับตัวแปรได้ ตัวอย่างเช่น:
- คุณสามารถสร้างข้อยกเว้นชนิดต่างๆ ได้
- คุณสามารถเข้าถึงเนื้อหาของข้อยกเว้นได้
การ "โยน" และ "จับ" ข้อยกเว้นหมายความว่าอย่างไร?
สามารถอธิบายคําว่า "โยน" และ "จับ" ได้โดยการประเมินข้อกําหนดของข้อยกเว้น
ประโยคที่สองของข้อกําหนดระบุว่า "ข้อยกเว้นถูกโยนโดยโค้ดที่พบข้อผิดพลาดและถูกจับโดยโค้ดที่สามารถแก้ไขข้อผิดพลาดได้" ส่วนแรกของประโยคนี้บอกให้คุณทราบว่า มีการสร้างข้อยกเว้นโดยรันไทม์ .NET เมื่อมีข้อผิดพลาดเกิดขึ้นในโค้ดของคุณ ส่วนที่สองของประโยคบอกให้คุณทราบว่าคุณสามารถเขียนโค้ดเพื่อจับข้อยกเว้นที่ถูกโยนได้ นอกจากนี้ รหัสที่รับข้อยกเว้นสามารถใช้เพื่อดําเนินการแก้ไขให้เสร็จสมบูรณ์ หวังว่าจะลดสถานการณ์ที่เกิดจากรหัสที่ส่งผลให้เกิดข้อผิดพลาด กล่าวอีกนัยหนึ่งคือ คุณสามารถเขียนโค้ดที่ปกป้องแอปพลิเคชันของคุณเมื่อเกิดข้อผิดพลาด
หลังจากประเมินประโยคที่สองของข้อกําหนดแล้ว คุณจะทราบสิ่งต่อไปนี้:
- ข้อยกเว้นจะถูกสร้างขึ้นในขณะทํางานเมื่อรหัสของคุณเกิดข้อผิดพลาด
- ข้อยกเว้นสามารถปฏิบัติได้เช่นเดียวกับตัวแปรที่มีความสามารถพิเศษบางอย่าง
- คุณสามารถเขียนโค้ดที่เข้าถึงข้อยกเว้น และดําเนินการแก้ไข
ส่วนเหลือของข้อกําหนดจะแจ้งให้คุณทราบถ้ารันไทม์ .NET ตรวจพบข้อผิดพลาด จะสร้างข้อยกเว้น ข้อยกเว้นที่สร้างขึ้นประกอบด้วยข้อมูลเกี่ยวกับข้อผิดพลาดที่เกิดขึ้น รหัสของคุณสามารถตรวจจับข้อยกเว้นและแก้ไขปัญหาได้โดยใช้ข้อมูลที่จัดเก็บไว้ในข้อยกเว้น
สรุป
นี่คือสิ่งสําคัญบางอย่างที่ต้องจําจากหน่วยนี้:
- ข้อยกเว้นจะถูกใช้ใน C# เพื่อเผยแพร่ข้อผิดพลาดในขณะทํางาน และแสดงด้วยคลาสที่
Exceptionสืบทอดมาจากคลาส - ข้อยกเว้นจะเกิดขึ้นตามโค้ดที่พบข้อผิดพลาดและถูกจับโดยโค้ดที่สามารถแก้ไขข้อผิดพลาดได้
- เมื่อตรวจพบข้อยกเว้น รหัสสามารถเข้าถึงเนื้อหาและดําเนินการแก้ไขเพื่อบรรเทาข้อผิดพลาด
- รันไทม์ .NET จะสร้างข้อยกเว้นเมื่อตรวจพบข้อผิดพลาดและข้อยกเว้นมีข้อมูลเกี่ยวกับชนิดของข้อผิดพลาดที่เกิดขึ้น
ตรวจสอบความรู้ของคุณ
คำติชม
หน้านี้มีประโยชน์หรือไม่
ไม่
ต้องการความช่วยเหลือในหัวข้อนี้หรือไม่
ต้องการลองใช้ Ask Learn เพื่อทําให้ชัดเจนหรือแนะนําคุณผ่านหัวข้อนี้หรือไม่