การจัดการข้อผิดพลาด

Python ระดับกลางสำหรับนักพัฒนา

Jasmin Ludolf

Senior Data Science Content Developer

Pandas traceback

Traceback ที่แสดงโค้ดซึ่งตั้งใจให้เกิดข้อผิดพลาด

  • except, raise

  • ลองคาดการณ์ว่าข้อผิดพลาดอาจเกิดขึ้นได้อย่างไร

Python ระดับกลางสำหรับนักพัฒนา

Design-thinking

  • ผู้ใช้อาจใช้ฟังก์ชันของเราอย่างไร?
  • ทดสอบวิธีต่างๆ
  • ค้นหาข้อผิดพลาดที่อาจเกิดขึ้น

ประเภทการเดินทางต่างๆ ในเมือง

Python ระดับกลางสำหรับนักพัฒนา

การจัดการข้อผิดพลาดในฟังก์ชันที่กำหนดเอง

def average(values):
    # Calculate the average
    average_value = sum(values) / len(values)
    return average_value
Python ระดับกลางสำหรับนักพัฒนา

อาจเกิดข้อผิดพลาดตรงไหน?

  • average() รับ list หรือ set
  • ส่งอาร์กิวเมนต์มากกว่าหนึ่งตัว 🛑
  • ใช้ชนิดข้อมูลที่ไม่ถูกต้อง 🛑
Python ระดับกลางสำหรับนักพัฒนา

อาจเกิดข้อผิดพลาดตรงไหน?

sales_dict = {"cust_id": ["JL93", "MT12", "IY64"],
              "order_value": [43.21, 68.70, 82.19]}
print(average(sales_dict))

Traceback แสดง TypeError

Python ระดับกลางสำหรับนักพัฒนา

การจัดการข้อผิดพลาดแบบเดิม

  • Control flow if, elif, else
  • Docstrings
Python ระดับกลางสำหรับนักพัฒนา

try-except

def average(values):

try:
# Code that might cause an error average_value = sum(values) / len(values) return average_value
except:
# Code to run if an error occurs print("average() accepts a list or set. Please provide a correct data type.")
Python ระดับกลางสำหรับนักพัฒนา

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
Python ระดับกลางสำหรับนักพัฒนา

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise
Python ระดับกลางสำหรับนักพัฒนา

raise TypeError

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise TypeError("average() accepts a list or set, please provide a correct data type.")
Python ระดับกลางสำหรับนักพัฒนา

ผลลัพธ์จาก raise TypeError

print(average(sales_dict))

ผลลัพธ์ TypeError ที่แสดงข้อความแจ้งให้ระบุชนิดข้อมูลที่ถูกต้อง

Python ระดับกลางสำหรับนักพัฒนา

try-except vs. raise

try-except

  • ป้องกันไม่ให้เกิดข้อผิดพลาด
  • ยังคงรันโค้ดถัดไปได้

raise

  • จะทำให้เกิดข้อผิดพลาด
  • หยุดการรันโค้ดถัดไป
Python ระดับกลางสำหรับนักพัฒนา

มาฝึกกันเถอะ!

Python ระดับกลางสำหรับนักพัฒนา

Preparing Video For Download...