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

การจัดการข้อผิดพลาดในภาษา 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("ไม่มีข้อพิดพลาด")

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
วิธีแก้ไขรูปแบบวันที่ ในเอกสาร google sheet
โดย thatsawan อ 03 ธ.ค. 2019 10:47 am บอร์ด Microsoft Office Knowledge & line & Etc
1
28
อ 03 ธ.ค. 2019 1:35 pm โดย chatee supasand
สอบถาม ปุ่มส่งค่า Activityไปยังหน้าอื่นและกลับมาหน้าหลัก
โดย Dhanaporn Promchatsoonthorn จ 02 ธ.ค. 2019 10:01 pm บอร์ด Mobile Programming - Android, iOS, Window Phone
0
29
จ 02 ธ.ค. 2019 10:01 pm โดย Dhanaporn Promchatsoonthorn
งานปฏิธิน 2020
โดย noppadonsk จ 02 ธ.ค. 2019 6:35 pm บอร์ด MT36 - นายนพดล สุชญากูล
7
68
ศ 13 ธ.ค. 2019 1:33 pm โดย noppadonsk
วิธีการเพิ่ม - ลบ ช่องกรอกข้อมูล โดยใช้ jquery เพื่อปรับเพิ่มลดช่องกรอกข้อมูลได้ตามต้องการ
โดย Ittichai_chupol จ 02 ธ.ค. 2019 5:03 pm บอร์ด Jquery & Ajax Knowledge
0
31
จ 02 ธ.ค. 2019 5:03 pm โดย Ittichai_chupol
ขอความอนุเคราะห์เรื่อง การเขียนคิวรี่ข้อมูลในเดือน
โดย 9kitti จ 02 ธ.ค. 2019 1:39 pm บอร์ด SQL - Database
1
34
จ 02 ธ.ค. 2019 2:22 pm โดย mindphp
วิธีเดินทางจากสุราษฎร์ธานี (เกาะสมุย) มา กทม.
โดย Grammanano จ 02 ธ.ค. 2019 12:21 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
39
จ 02 ธ.ค. 2019 3:49 pm โดย thatsawan
การเดินทางจาก พัทยา มา กทม.(หมอชิต2)
โดย noppadonsk จ 02 ธ.ค. 2019 12:06 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
52
จ 02 ธ.ค. 2019 12:06 pm โดย noppadonsk
list ความรู้ที่มี ว่าเคยเรียน หรือเคยทำอะไรมาบ้าง
โดย noppadonsk จ 02 ธ.ค. 2019 11:19 am บอร์ด MT36 - นายนพดล สุชญากูล
1
17
จ 02 ธ.ค. 2019 3:55 pm โดย thatsawan
list ความรู้ที่มี ว่าเคยเรียน หรือ เคยทำอะไรมาบ้าง
โดย Grammanano จ 02 ธ.ค. 2019 11:19 am บอร์ด M098 - อนงค์นาท ไฝขาว
4
28
อ 03 ธ.ค. 2019 3:15 pm โดย Grammanano
Module "MooZiiCart Search" ของ MooZiicart ใช้ค้นหาสินค้า ด้วยคำที่มีคีย์ ตามที่กำหนดไว้
โดย prmindphp จ 02 ธ.ค. 2019 11:07 am บอร์ด MindPHP News & Feedback
0
39
จ 02 ธ.ค. 2019 11:07 am โดย prmindphp
Note
โดย Grammanano จ 02 ธ.ค. 2019 11:06 am บอร์ด M098 - อนงค์นาท ไฝขาว
5
30
จ 09 ธ.ค. 2019 6:51 pm โดย mindphp
Work's on Hand อนงค์นาท ไฝขาว M098
โดย Grammanano จ 02 ธ.ค. 2019 11:05 am บอร์ด M098 - อนงค์นาท ไฝขาว
0
2
จ 02 ธ.ค. 2019 11:05 am โดย Grammanano
Work's on hand นพดล สุชญากูล MT36
โดย noppadonsk จ 02 ธ.ค. 2019 11:04 am บอร์ด MT36 - นายนพดล สุชญากูล
2
22
จ 09 ธ.ค. 2019 6:39 pm โดย noppadonsk
งานประจำวันที่ 2 ธันวาคม 2562
โดย Grammanano จ 02 ธ.ค. 2019 11:02 am บอร์ด M098 - อนงค์นาท ไฝขาว
4
22
จ 02 ธ.ค. 2019 7:05 pm โดย Grammanano
Note
โดย noppadonsk จ 02 ธ.ค. 2019 11:02 am บอร์ด MT36 - นายนพดล สุชญากูล
2
11
พ 04 ธ.ค. 2019 7:55 pm โดย noppadonsk
งานประจำวันที่ 2 ธันวาคม 2562
โดย noppadonsk จ 02 ธ.ค. 2019 11:01 am บอร์ด MT36 - นายนพดล สุชญากูล
3
39
จ 02 ธ.ค. 2019 4:24 pm โดย noppadonsk
ภาพ MooZii Opencart - Template MooZiicart
โดย numtan5839 จ 02 ธ.ค. 2019 10:30 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
25
ศ 06 ธ.ค. 2019 2:46 pm โดย thatsawan
งานประจำวันที่ 2 ธันวาคม 2562
โดย numtan5839 จ 02 ธ.ค. 2019 10:08 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
1
10
จ 02 ธ.ค. 2019 7:21 pm โดย numtan5839
B - Default Template ในการส่ง E-Mail ใบเสนอราคาหายไป
โดย mindphp จ 02 ธ.ค. 2019 7:01 am บอร์ด M.D.Soft Co.,Ltd. - Tester
0
1
จ 02 ธ.ค. 2019 7:01 am โดย mindphp
การใช้ Ajax แสดงผล เมื่อเลือกรายการใน list แล้วเปลี่ยนรูปภาพที่แสดง
โดย bankjittapol ส 30 พ.ย. 2019 7:13 pm บอร์ด Jquery & Ajax Knowledge
0
482
ส 30 พ.ย. 2019 7:13 pm โดย bankjittapol