Error Type
หลังจากน้องๆได้เรียนวิธีการเขียน Python แบบหลักการไปแล้ว>
ใน lecture นี้ก็จะมาดูกันว่า Python และภาษาโปรแกรมหลายๆอันเค้่าทำอะไร เมื่อโปรแกรมถูกทำงานแล้ว
เราก็ต้องมาดูกันก่อนครับ ว่ากว่าโค้ดของน้องๆจะรันได้ Python ต้องทำอะไรบ้าง
- Compile เป็นการอ่าน Syntax ของโค้ด
- Analyze เป็นการอ่านเรื่องหลักการณ์ของการใช้โค้ด
- 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