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

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

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
รายละเอียดงานออกแบบ bootstrap
โดย bolue ส 06 มิ.ย. 2020 10:21 am บอร์ด M104 - สุภาภรณ์ อินกรรไกร
0
7
ส 06 มิ.ย. 2020 10:21 am โดย bolue
งานประจำวันที่ 6 มิถุนายน 2563
โดย natthanit.r2538 ส 06 มิ.ย. 2020 9:58 am บอร์ด M103 - ณัฐนิตย์ ร่มบ้านโหล๊ะ
2
7
ส 06 มิ.ย. 2020 10:16 am โดย natthanit.r2538
งานประจำวันที่ 6 มิถุนายน 2563
โดย bolue ส 06 มิ.ย. 2020 9:57 am บอร์ด M104 - สุภาภรณ์ อินกรรไกร
4
12
ส 06 มิ.ย. 2020 10:54 am โดย bolue
Celeb net worth?
โดย Bailey99 ศ 05 มิ.ย. 2020 7:03 pm บอร์ด PHP Knowledge
1
14
ศ 05 มิ.ย. 2020 7:28 pm โดย rajneeskumar
วิธีการ ใช้งาน vuetify คู่กับ vue.js
โดย bolue ศ 05 มิ.ย. 2020 6:02 pm บอร์ด CSS Knowledge
0
8
ศ 05 มิ.ย. 2020 6:02 pm โดย bolue
วิธีการ ติดตั้ง vue.js สำหรับผู้เริ่มต้น หัดเขียน สอนติดตั้ง
โดย bolue ศ 05 มิ.ย. 2020 4:55 pm บอร์ด Jquery & Ajax Knowledge
0
31
ศ 05 มิ.ย. 2020 4:55 pm โดย bolue
วิธีการ ใช้ Grid ออกแบบเป็น responsive design โดย vuetify
โดย bolue ศ 05 มิ.ย. 2020 3:36 pm บอร์ด CSS Knowledge
0
15
ศ 05 มิ.ย. 2020 3:36 pm โดย bolue
วิธีการ เรียนใช้ dialog จาก components โดย vue.js
โดย bolue ศ 05 มิ.ย. 2020 1:45 pm บอร์ด Jquery & Ajax Knowledge
0
19
ศ 05 มิ.ย. 2020 1:45 pm โดย bolue
วิธีการ การเรียกใช้ methods โดย vue.js
โดย bolue ศ 05 มิ.ย. 2020 1:17 pm บอร์ด Jquery & Ajax Knowledge
0
11
ศ 05 มิ.ย. 2020 1:17 pm โดย bolue
วิธีการ ค้นหาด้วยการใช้ watch โดย vue.js
โดย bolue ศ 05 มิ.ย. 2020 12:45 pm บอร์ด Jquery & Ajax Knowledge
0
8
ศ 05 มิ.ย. 2020 12:45 pm โดย bolue
วิธีการ แสดงผลข้อมูล จากน้อยไปมาก มากไปน้อย โดย Python
โดย bolue ศ 05 มิ.ย. 2020 11:56 am บอร์ด Python Knowledge
0
9
ศ 05 มิ.ย. 2020 11:56 am โดย bolue
วิธีการ ค้นหาแบบช่วงวันที่ โดย Python
โดย bolue ศ 05 มิ.ย. 2020 11:25 am บอร์ด Python Knowledge
0
13
ศ 05 มิ.ย. 2020 11:25 am โดย bolue
เรียนรู้โปรแกรมบริหารตลาดนัด สรุป และการนำไปใช้
โดย natthanit.r2538 ศ 05 มิ.ย. 2020 11:07 am บอร์ด M103 - ณัฐนิตย์ ร่มบ้านโหล๊ะ
8
20
ส 06 มิ.ย. 2020 10:01 am โดย mindphp
งานประจำวันที่ 5 มิถุนายน 2563
โดย bolue ศ 05 มิ.ย. 2020 10:05 am บอร์ด M104 - สุภาภรณ์ อินกรรไกร
7
54
ศ 05 มิ.ย. 2020 7:47 pm โดย thatsawan
งานประจำวันที่ 5 มิถุนายน 2563
โดย natthanit.r2538 ศ 05 มิ.ย. 2020 10:01 am บอร์ด M103 - ณัฐนิตย์ ร่มบ้านโหล๊ะ
3
16
ศ 05 มิ.ย. 2020 8:07 pm โดย natthanit.r2538
กองทุนประกันสังคม มีผู้ประกันตนกี่ประเภท ??
โดย natthanit.r2538 พฤ 04 มิ.ย. 2020 5:53 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
11
พฤ 04 มิ.ย. 2020 5:53 pm โดย natthanit.r2538
สรุปความเข้าใจ เกี่ยวกับการตั้งกระทู้
โดย bolue พฤ 04 มิ.ย. 2020 5:16 pm บอร์ด M104 - สุภาภรณ์ อินกรรไกร
0
10
พฤ 04 มิ.ย. 2020 5:16 pm โดย bolue
วิธีการ ลงเวลา โดย Python
โดย bolue พฤ 04 มิ.ย. 2020 4:09 pm บอร์ด Python Knowledge
0
37
พฤ 04 มิ.ย. 2020 4:09 pm โดย bolue
การยื่นแบบ ภ.ง.ด. 53 ออนไลน์ สอนวิธีการยื่นแบบออนไล์ ทำได้ด้วยตัวเอง
โดย natthanit.r2538 พฤ 04 มิ.ย. 2020 3:51 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
1
26
พฤ 04 มิ.ย. 2020 4:16 pm โดย natthanit.r2538
วิธีการ โชว์ข้อมูลด้วยการ Format วันที่ โดย Python
โดย bolue พฤ 04 มิ.ย. 2020 3:38 pm บอร์ด Python Knowledge
0
34
พฤ 04 มิ.ย. 2020 3:38 pm โดย bolue