ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

     Exception คือ ข้อผิดพลาดในการทำงานของโปรแกรม หรือที่เราเรียกกันติดปากว่า Error ซึ่งข้อผิดพลาดที่เกิดขึ้นนั้นก็อาจเกิดขึ้นได้จากหลายกรณี เช่น ข้อผิดพลาดที่เกิดขึ้นจากระบบ หรือ ข้อผิดพลาดที่เกิดขึ้นจากการระบุข้อมูลที่ไม่ถูกต้องในตัวแปรต่างๆ ซึ่งในบางปัญหานั้นเราก็อาจจะสามารถแก้ไขได้ โดยการตรวจสอบข้อผิดพลาด ตามแต่ลักษณะของข้อผิดพลาดที่เกิดขึ้น ซึ่งในบทความนี้เราจะมาพูดถึงลักษณะของข้อผิดพลาดในภาษาไพทอนกัน 

     ข้อผิดพลาดในการทำงานของโปรแกรม คือปัญหาสำคัญที่เราจะต้องหาทางป้องกันเอาไว้ล่วงหน้าเพราะบางกรณี เราอาจคาดคะเนถึงปัญหาที่จะเกิดขึ้นได้ โดยในภาษาไพทอนนั้นจะมีกลไกการตรวจสอบและจัดการข้อผิดพลาดที่เรียกว่า Exception Handling แม้หลักการบางส่วนจะคล้ายคลึงกับภาษาอื่นๆ แต่บางลักษณะก็มีวิธีที่แตกต่างออกไป

ลักษณะของ Exception

     โดยทั่วไป เราจะแบ่งลักษณะของข้อผิดพลาดออกเป็น 2 ระดับคือ Fatal Error กับ Exception ซึ่งจะมีข้อแตกต่างกันดังนี้

- Fatal Error จัดเป็นข้อผิดพลาดประเภทร้ายแรง และส่วนใหญ่มันจะเกี่ยวกับระบบ ที่อยู่นอกเหนือการควบคุม ซึ่งลักษณะนี้เราไม่สามารถที่จะคาดคะเนล่วงหน้าได้ว่าจะเกิดขึ้นหรือไม่ ดังนั้นเราไม่สามารถจัดการหรือแก้ไขใดๆได้

- Exception Error เป็นข้อผิดพลาดแบบไม่ร้ายแรง ซึ่งเราสามารถคาดคะเนได้ว่า น่าจะเกิดปัญหาขึ้นที่ไหนและเกิดอย่างไร ดังนั้น เราจึงสามารถเตรียมแนวทางในการจัดการ หรือป้องกันแก้ไขปัญหาดังกล่าวล่วงหน้าได้

ตัวอย่าง

x = int(input('โปรดระบุตัวเลข :'))
print(x)

     ในตัวอย่างนี้จะเป็นกรณีการเกิด Exception ถ้าผู้ใช้ใส่ข้อมูลที่ไม่สามารถแปลงเป็นตัวเลขจำนวนเต็มได้ เช่น 'abcd' หรือแม้กระทั่งตัวเลขที่เป็นเลขทศนิยม เมื่อนำไปกำหนดให้กำฟังก์ชัน int() ก็จะทำให้เกิดข้อผิดพลาดขึ้น จนโปรแกรมอาจจะต้องหยุดทำงาน

ผลลัพธ์

ผลลัพธ์ Exception Error จากการระบุค่าไม่ถูกต้อง
ผลลัพธ์ Exception Error

     ผลลัพธ์ที่ออกมานั้นก็จะเป็นข้อผิดพลาด Exception ซึ่งจากตรงนี้เราจะเห็นได้ว่าเราไม่สามารถป้องกัน หรือห้ามไม่ให้ผู้ใช้ใส่ข้อมูลที่อาจทำให้เกิดข้อผิดพลาดได้ ถ้าหากผู้ใช้ใส่ข้อมูลที่ก่อให้เกิดความผิดพลาดเข้ามา เราจะพอมีวิธีแก้ไขหรือไม่ เช่นแจ้งเตือน แล้วทำการใส่ข้อมูลใหม่ เพราะบางครั้งข้อผิดพลาดนั้นอาจเกิดจากความไม่ตั้งใจ และข้อผิดพลาดเหล่านี้ เราไม่สามารถใช้ if ตรวจสอบได้ เพราะข้อผิดพลาดจะเกิดขึ้นทันทีที่กำหนดค่าไม่ถูกต้องให้แก่ตัวแปร จึงไม่สามารถใช้ if ตรวจสอบค่าที่ใส่เข้ามาได้

     และจากที่กล่าวมาข้างต้น ทำให้เราจำเป็นต้องมีกลไกหรือวิธีการในการตรวจสอบและจัดการกับข้อผิดพลาดที่เรียกว่า Exception Handling ซึ่งเราจะมาพูดถึงในหัวข้อต่อๆ ไปกัน

 

 

ช่องทางการศึกษาเพิ่มเติมเกี่ยวกับ : Python

บทเรียน Python

เทคนิคการเขียนไพทอน

ประวัติความเป็นมาของ ภาษา Python ไพทอน

ดักจับข้อผิดพลาดในโปรแกรมของไพทอน Exceptions Handing try finally

ดักจับข้อผิดพลาดในโปรแกรมของไพทอน Exceptions Handing try except

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
หลักการเตรียมตัวก่อนเข้าสัมภาษณ์งาน กับบริษัททางด้านไอที
โดย fighthrmd125 พ 24 ก.พ. 2021 5:21 pm บอร์ด Share Knowledge
0
13
พ 24 ก.พ. 2021 5:21 pm โดย fighthrmd125
ช่วยแนะนำรูปแบบการเขียน Google Structured ของ joomla
โดย eange08 พ 24 ก.พ. 2021 5:02 pm บอร์ด Joomla Development
1
14
พ 24 ก.พ. 2021 6:27 pm โดย mindphp
หลักการเขียนเรียงความ ภาษาไทย
โดย fighthrmd125 พ 24 ก.พ. 2021 2:52 pm บอร์ด Share Knowledge
0
14
พ 24 ก.พ. 2021 2:52 pm โดย fighthrmd125
หลักการคิด เงินเดือน และ หักประกันสังคม พร้อมตัวอย่างการคำนวณ โดยใช้ Google Sheet
โดย fighthrmd125 อ 23 ก.พ. 2021 5:26 pm บอร์ด Share Knowledge
0
21
อ 23 ก.พ. 2021 5:26 pm โดย fighthrmd125
อยากแสดงตัวเลข process ในวงกลมจะต้องทำยังงัย
โดย eange08 อ 23 ก.พ. 2021 5:16 pm บอร์ด JavaScript & Jquery Ajax
0
14
อ 23 ก.พ. 2021 5:16 pm โดย eange08
สอบถามเกี่ยวกับระบบ ERP ว่าถ้าจัดส่งสินค้าเสร็จแล้วต้องลงระบบอย่างไร
โดย Kannaphat อ 23 ก.พ. 2021 3:45 pm บอร์ด MindPHP News & Feedback
0
18
อ 23 ก.พ. 2021 3:45 pm โดย Kannaphat
สอบถามเกี่ยวกับบทความที่จะเเชร์หน่อยครับ
โดย chakirin.bfds อ 23 ก.พ. 2021 1:49 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
18
อ 23 ก.พ. 2021 2:16 pm โดย mindphp
ตรวจแบบทดสอบผู้สมัครไม่เป็นครับ รบกวนช่วยบอกขั้นตอนหรือรายละเอียดหน่อยครับ
โดย fighthrmd125 อ 23 ก.พ. 2021 12:55 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
14
อ 23 ก.พ. 2021 12:55 pm โดย fighthrmd125