โปรแกรม Error แก้ยังไง?
ถามมาบ่อยมากกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก สำหรับคำถามนี้
ซึ่งทุกคนมักจะมาแนวนี้...."พี่ค่ะ ช่วยดูโปรแกรมให้หน่อยค่ะ มัน error" แล้วส่งก็ส่งรูปแบบนี้มาให้ผมดู
ซึ่งมันไม่ได้ช่วยอะไรเลย เพราะอะไรรู้ไหมครับ?
เพราะว่าส่วนข้อความที่มันแจ้งเตือน error มันมองไม่เห็นเลย แล้วข้อความแจ้งเตือน error นี่มันอยู่ตรงไหนละ? หลายๆ คนอาจจะยังไม่รู้ คำตอบคือ มันอยู่ใน Command window ครับ (ในรูปคือส่วนที่อยู่ตรงกลาง ด้านล่าง)
เวลาเราเขียนโปรแกรมแล้วมี error อะไรก็ตาม มันจะมีข้อความแจ้งเตือน error แสดงที่หน้า command window เสมอ ซึ่งโปรแกรม MATLAB มันแจ้งเตือนได้ละเอียดมากๆ ถึงขั้นที่ว่า error ในไฟล์อะไร บรรทัดไหน error เพราะอะไร คือ แค่อ่านดูนิดเดียวก็จะรู้แล้วว่าต้องแก้ตรงไหน แต่....ทุกคนก็มักจะอ้างว่า "อ่านภาษาอังกฤษไม่ออก" ทั้งๆ ที่ทุกวันนี้ก็มี google translate ให้ใช้ละ ไม่ต้องไปเปิด dictionary เหมือนสมัยก่อนละ
เราลองมาดูกันเต็มๆ นะครับว่าข้อความ error ที่แจ้งเตือนใน command window มันบอกอะไรเรา ซึ่งสิ่งที่เราต้องดูก็คือ error ตัวที่อยู่บนสุด ในข้อความที่มันแจ้งมาครับ (เพราะงี้ไง ผมเลยแนะนำว่าให้ใส่คำสั่ง clc ไว้บนสุดของโปรแกรมเสมอ เวลามีข้อความ error จะได้ไม่สับสนของเก่าของใหม่)
ซึ่งในตัวอย่างนี้นะครับ MATLAB มันฟ้องว่า....
Error using dspmmfileinfo>tryVideoReader (line 296)
The filename specified was not found in the MATLAB path. The specified file is: D:\MATLAB JOB\Bloger-Loglike\Video\Test04.mp4
แปลง่ายๆ ก็คือมันบอกว่า Error ที่คำสั่ง VideoReader บรรทัดที่ 296 เพราะว่าไฟล์วีดีโอที่เราอ้างถึง มันหาไม่พบ มันก็เลยอ่านไฟล์นั้นไม่ได้
ทีนี้เราก็ค่อยไปเช็คดูว่า ไฟล์นั้นอยู่ที่ไหน เราเขียนชื่อผิดรึเปล่า หรือว่ามันอยู่คนละโฟลเดอร์ แล้วก็แก้ชื่อไฟล์ หรือ ตำแหน่งไฟล์ให้มันถูกต้อง แค่นี้เองครับ
ใน MATLAB นั้นมี error อยู่หลายประเภทมากๆ ดังนั้น แต่ละคนก็คงเจอ error ไม่เหมือนกันหรอกครับ แต่สิ่งที่มันเหมือนกันก็คือ error ของโปรแกรม จะอยู่ที่ข้อความ error บนสุดที่มันแจ้งที่หน้า command window
ดังนั้นเวลาโปรแกรม error ไม่ต้องตกใจครับ ลองไปอ่านดูข้อความที่มันแจ้งเตือนก่อน บางทีอาจจะเป็นแค่ error เล็กๆ น้อยๆ ที่เราก็แก้เองได้ แต่ถ้าลองแล้วยังแก้ไม่ได้ ค่อยมาถามผม โดยเอาข้อความ error ที่มันฟ้องนี่แหละครับมาให้ผมดู
แต่มันจะมี error อยู่อย่างหนึ่งที่คนที่เริ่มหัดเขียนโปรแกรมมักจะเจอกันบ่อยมาก นั่นก็คือ...
"Error exeed mattrix dimension"
ซึ่งหมายความว่าคุณ วนลูป หรือ เรียกข้อมูล เกินขนาดตัวแปรนั่นเองครับ เช่น อาเรย์ A มีสมาชิกแค่ 10 ตัว แต่คุณเรียกใช้สมาชิกตัวที่ 11 มันก็จะฟ้อง error แบบนี้แหละ
ลองหัดแก้กันดูนะครับ ถ้าได้แก้บ่อยๆ ก็จะยิ่งเขียนโปรแกรมเก่งขึ้น เพราะเวลาที่เราทำผิด แล้วเราแก้ได้ เรามักจะจำได้ดีกว่า ตอนที่ฟังครูสอนปกติ
เอาละ หวังว่าคงจะเป็นประโยชน์บ้างนะครับ ใครที่กำลังแก้โปรแกรมอยู่ ก็สู้ๆ นะครับ