เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การจัดการข้อผิดพลาดด้วย try-except

แนวทางที่ดีในการเขียนฟังก์ชันของตัวเองคือการคาดการณ์ไว้ด้วยว่าผู้อื่น (หรือแม้แต่ตัวเอง หากใช้ฟังก์ชันผิดพลาด) อาจเรียกใช้ฟังก์ชันนั้นอย่างไร

จากแบบฝึกหัดก่อนหน้า จะเห็นว่าฟังก์ชัน len() รับอาร์กิวเมนต์ประเภทสตริง ลิสต์ และทูเพิลได้ แต่ไม่สามารถรับประเภท int ได้ และจะส่งข้อผิดพลาดพร้อมข้อความที่เหมาะสมเมื่อรับอาร์กิวเมนต์ที่ไม่ถูกต้อง วิธีหนึ่งที่ทำแบบนี้ได้คือการใช้บล็อก try-except สำหรับจัดการข้อผิดพลาด

ในแบบฝึกหัดนี้ จะได้นิยามฟังก์ชันและใช้บล็อก try-except เพื่อรองรับกรณีที่มีการส่งอาร์กิวเมนต์ที่ไม่ถูกต้องเข้ามา

นึกถึงฟังก์ชัน shout_echo() ที่เคยนิยามไว้ในแบบฝึกหัดก่อนหน้า โดยโค้ดตัวอย่างได้ให้โครงสร้างบางส่วนไว้แล้ว เป้าหมายคือเติมโค้ดจัดการข้อผิดพลาดให้สมบูรณ์ และระบุข้อความแจ้งข้อผิดพลาดที่เหมาะสมเมื่อเกิดข้อผิดพลาดขึ้น

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python เบื้องต้น: การเขียนฟังก์ชัน

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดค่าเริ่มต้นให้กับตัวแปร echo_word และ shout_words เป็นสตริงว่างเปล่า
  • เพิ่มคีย์เวิร์ด try และ except ในตำแหน่งที่เหมาะสมของบล็อกจัดการข้อผิดพลาด
  • ใช้ตัวดำเนินการ * เพื่อเชื่อม word1 ซ้ำ echo ครั้ง แล้วกำหนดผลลัพธ์ให้กับ echo_word
  • เชื่อมสตริง '!!!' ต่อท้าย echo_word แล้วกำหนดผลลัพธ์ให้กับ shout_words

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Define shout_echo
def shout_echo(word1, echo=1):
    """Concatenate echo copies of word1 and three
    exclamation marks at the end of the string."""

    # Initialize empty strings: echo_word, shout_words
    
    

    # Add exception handling with try-except
    ____:
        # Concatenate echo copies of word1 using *: echo_word
        echo_word = ____

        # Concatenate '!!!' to echo_word: shout_words
        shout_words = ____
    ____:
        # Print error message
        print("word1 must be a string and echo must be an integer.")

    # Return shout_words
    return shout_words

# Call shout_echo
shout_echo("particle", echo="accelerator")
แก้ไขและรันโค้ด