Error Type

หลังจากน้องๆได้เรียนวิธีการเขียน Python แบบหลักการไปแล้ว>
ใน lecture นี้ก็จะมาดูกันว่า Python และภาษาโปรแกรมหลายๆอันเค้่าทำอะไร เมื่อโปรแกรมถูกทำงานแล้ว

เราก็ต้องมาดูกันก่อนครับ ว่ากว่าโค้ดของน้องๆจะรันได้ Python ต้องทำอะไรบ้าง

  1. Compile เป็นการอ่าน Syntax ของโค้ด
  2. Analyze เป็นการอ่านเรื่องหลักการณ์ของการใช้โค้ด
  3. Interpret แปลงโค้ด Python เพื่อไปรันทันที โดย Python จะทำมาเป็น Byte code เลย ทำให้ไม่ต้องแปลงเป็นภาษาอืื่นๆก่อน เพื่อจะรัน

เกิด Error

ก็ปกติอ่ะเนอะ ที่โปรแกรมจะเจอปัญหา แต่เราก็สามารถแยกปัญหาออกมาเป็น 2 ประเภทได้ นั่นคือ

  • Compile Error
  • Runtime Error

โดยทั้ง 2 อันนี้จะแตกต่างกันด้วยว่า อันนึงเกิดก่อนที่โปรแกรมจะรันจริงๆ กับอีกอันคือเกิดเมื่อรันไปแล้วนั่นเอง

หากน้องๆยังไม่รู้ว่ามันต่างกันอย่างไร ก็ไปดูกันครับ

print(var)

พอรันแล้ว ก็จะแจ้งเตือนแบบนี้ครับ

Traceback (most recent call last):
    print(var)
NameError: name 'var' is not defined

ตัว Python ได้แจ้งบอกถึง NameError ครับ เพราะว่าน้องๆยังไม่ได้บอกตัวแปร var ในบรรทัดไหนเลย ทำให้มันพังครับ

แต่คำว่าพัง ก็ไม่ได้หมายความว่า Python มันจะรันไปแล้วนะครับ มันยังไม่ได้รัน เพราะมันยังไม่เข้าใจว่าตัวแปร var คืออะไร ทำให้มันบอกน้องๆก่อนว่ามันไม่เข้าใจนั่นเอง และหยุดการทำงานของ Compiler ทันที

กับอีกแบบนึงครับ

first_name = input()
first_name = int(first_name)

อันนี้โปรแกรมก็จะทำงานได้อย่างปกติดีครับ เพราะว่าน้องๆเขียนโค้ดได้อย่างถูกต้อง
แต่หากว่าน้องๆเอา string เข้าไป เช่น "kumamon" ก็จะเกิดแบบนี้ขึ้นครับ

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '"kumamon"'

ก็จะเห็นได้ว่า การทำ Data Type Casting ไปเป็น integer นัั้นเป็นไปไม่ได้ เพราะว่าตัวก่อนหน้ามันคือ String และไม่ได้เป็นตัวเลขด้วยครับ เลยเปลี่ยนไปเป็น Integer ไม่ได้นั่นเอง

อันนี้ก็คือการเกิด Error ที่น้องๆอาจที่จะต้องดูแลมันซะหน่อยเนอะ ด้วย Try and Except