ให้เรตสมาชิก: 0 / 5

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

การจัดการข้อผิดพลาดในภาษา Python

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

error
error


ข้อผิดพลาดในภาษา Python ในการเขียนโปรแกรมมีอยู่ 2 ชนิด คือ

  1. Syntax Errors
  2. Exceptions

1. Syntax Errors
เป็นการเขียนผิดหลักไวยากรณ์ของภาษา Python มักจะพบบ่อย เมื่อลืมใส่วงเล็บหรือใช้คำสั่งผิด import ไลบรารีผิด หรือนำโค้ด Python 2 มารันบน Python 3

2. Exceptions
แม้ว่าจะเขียนโค้ดโปรแกรมถูกหลักไวยากรณ์ของภาษา Python แต่หากจะมีปัญหาในการดำเนินการทำงานของโปรแกรม เช่น ใช้ชนิดของตัวแปรผิด

การจัดการข้อผิดพลาดในภาษา Python

เวลาเขียนโปรแกรมแล้วทำการรัน ถ้าพบข้อผิดพลาดจะหยุดการทำงานโปรแกรมทันที หากเราต้องการให้โปรแกรมต่อไปได้เมื่อพบข้อผิดพลาด ก็ต้องใช้ บล็อก Try และบล็อก Except 

Exception Errors มีดังนี้

1. IOError : ไม่สามารถเปิดไฟล์ได้

try:
    open('a.txt','r')
except IOError:
    print("IOError")
แสดงผลที่ได้ IOError

2. ImportError : ไม่พบไลบรารีที่ระบุไว้

try:
     import mom
except ImportError:
     print("No")
แสดงผลที่ได้ No

3. ValueError : ชนิดของค่าที่ได้จากการตัวดำเนินการหรือฟังก์ชั่นจากอาร์กิวเมนต์ไม่เหมาะสม

try:
    a = int(input("กรอกตัวเลข:"))
except ValueError:
    print("ตัวเลขเท่านั้น")

4. ZeroDivisionError : เป็นข้อผิดพลาดที่พบเมื่อคุณนำค่าจำนวนเต็มหรือจำนวนจริงหารด้วย 0 เพราะการหารด้วย 0 ไม่สามารถหารได้

try:
    a = 6/0
except ZeroDivisionError:
    print("เกิดข้อผิดพลาดในการแปล")
แสดงผลที่ได้ เกิดข้อผิดพลาดในการแปล

5. KeyboardInterrupt : เมื่อการกระทำกับปุ่ม interrupt ของคีย์บอร์ด (Control-C หรือ Delete)

def foo():
    try:
        x=0
        while 1:
            x += 1
        print(x)
    except KeyboardInterrupt:
        print("Interrupted!")
foo()

6. Try ... except ... else : หลังจากที่เรากำหนดการทำงาน Exception Errors แล้ว หากเรารันโปรแกรมแล้วไม่พบข้อผิดพลาดที่เราได้กำหนดไว้ เราสามารถใช้บล็อก else ทำงานตามเงื่อนไขที่กำหนดไว้ได้

try:
    import sys
except ImportError:
    print("ข้อผิดพลาดในการนำเข้า")
else:
    print("ยินดีด้วย")

7. finally : เป็นการกำหนดคำสั่งเมื่อสิ้นสุดการทำงานบล็อก try except โดยบล็อก finally จะทำงานไม่ว่าจะมีข้อผิดพลาดเกิดขึ้นหรือไม่ก็ตาม

try:
    a = 6 / 1
except:
    print("เกิดข้อผิดพลาด")
finally:
    print("ไม่มีข้อพิดพลาด")

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 18 ตุลาคม 2561
โดย tai14 พฤ 18 ต.ค. 2018 10:04 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
0
1
พฤ 18 ต.ค. 2018 10:04 am โดย tai14
VDO - วิธีการแปลงไฟล์ไพธอนเป็นไฟล์ .exe
โดย prakon พฤ 18 ต.ค. 2018 10:04 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
0
1
พฤ 18 ต.ค. 2018 10:04 am โดย prakon
งานประจำวันที่ 18 ตุลาคม 2561
โดย prakon พฤ 18 ต.ค. 2018 10:00 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
0
2
พฤ 18 ต.ค. 2018 10:00 am โดย prakon
งานประจำวันที่ 18 ตุลาคม 2561
โดย nice_13 พฤ 18 ต.ค. 2018 9:55 am บอร์ด M071 - พิชญ์สินี คงจร
0
1
พฤ 18 ต.ค. 2018 9:55 am โดย nice_13
เเนะนำเรียนต่อต่างประเทศ
โดย Anonymous พ 17 ต.ค. 2018 10:09 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
5
พ 17 ต.ค. 2018 10:09 pm โดย บุคคลทั่วไป
Q - สอบถามวิธีการเแปลงไฟล์ Python เป็นไฟล์ .exe ครับ
โดย prakon พ 17 ต.ค. 2018 7:37 pm บอร์ด Programming - C/C++ & java & Python
0
9
พ 17 ต.ค. 2018 7:37 pm โดย prakon
VDO - รีวิว Module Manufacturer สำหรับแสดงผู้ผลิตสินค้า
โดย pprn พ 17 ต.ค. 2018 6:55 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
5
พ 17 ต.ค. 2018 6:55 pm โดย pprn
R - mdsoft_translate_posts ปรับเปลี่ยนแทมเพลตและภาษา
โดย Ittichai_chupol พ 17 ต.ค. 2018 6:34 pm บอร์ด ThaiVI - Developer
0
6
พ 17 ต.ค. 2018 6:34 pm โดย Ittichai_chupol
VDO - รีวิว Module Bestseller (โมดูล เบสต์เซลเลอร์) สำหรับแสดงสินค้าขายดี
โดย pprn พ 17 ต.ค. 2018 6:29 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
6
พ 17 ต.ค. 2018 6:29 pm โดย pprn
R - mdsoft_show_member_post การแสดงข้อมูลของสมาชิก
โดย Ittichai_chupol พ 17 ต.ค. 2018 6:27 pm บอร์ด ThaiVI - Developer
0
1
พ 17 ต.ค. 2018 6:27 pm โดย Ittichai_chupol
VDO - รีวิว Module currency (โมดูล เคอเร็นซิ) สำหรับเลือกสกุลเงินของสินค้า
โดย pprn พ 17 ต.ค. 2018 5:43 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
5
พ 17 ต.ค. 2018 5:43 pm โดย pprn
VDO - รีวิว Module Latest products (โมดูล เลทเอ็ซท์ โปรดักส์) สำหรับแสดงสินค้าล่าสุด
โดย pprn พ 17 ต.ค. 2018 4:49 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
0
6
พ 17 ต.ค. 2018 4:49 pm โดย pprn
เมื่อหัดเขียนเว็บไซต์ครั้งแรก
โดย tai14 พ 17 ต.ค. 2018 4:39 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
7
พ 17 ต.ค. 2018 4:39 pm โดย tai14
B - สรุป Review เว็บไซต์ zirishoes.com
โดย tsukasaz พ 17 ต.ค. 2018 12:14 pm บอร์ด สิริกิตติรัตน์ - Tester
1
12
พ 17 ต.ค. 2018 1:16 pm โดย mindphp
ขออนุญาตสอบถามครับ ผมมือใหม่
โดย 9kitti พ 17 ต.ค. 2018 11:25 am บอร์ด Programming - PHP
1
11
พ 17 ต.ค. 2018 12:18 pm โดย thatsawan
R - mdsoft_search_share (ค้นหาข้อมูลหุ้น)
โดย Ittichai_chupol พ 17 ต.ค. 2018 11:23 am บอร์ด ThaiVI - Developer
0
12
พ 17 ต.ค. 2018 11:23 am โดย Ittichai_chupol
R - Extension_Search_Share
โดย Ittichai_chupol พ 17 ต.ค. 2018 10:56 am บอร์ด M070 - อิทธิชัย ชูผล
0
5
พ 17 ต.ค. 2018 10:56 am โดย Ittichai_chupol
งานประจำวันที่ 17 ตุลาคม 2561
โดย prakon พ 17 ต.ค. 2018 10:19 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
15
พ 17 ต.ค. 2018 7:12 pm โดย prakon
งานประจำวันที่ 17 ตุลาคม 2561
โดย pprn พ 17 ต.ค. 2018 10:18 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
13
พ 17 ต.ค. 2018 7:22 pm โดย pprn
งานประจำวันที่ 17 ตุลาคม 2561
โดย tai14 พ 17 ต.ค. 2018 9:46 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
3
พ 17 ต.ค. 2018 7:08 pm โดย tai14