เคยเจอไหมกับเวลาที่ Coding Programs แล้วตอน Compile มันไม่ Error แต่พอใช้งานมันดัน Error ซะงั้น (Error ขณะ Runtime)
ผมเชื่อมั้นอย่างสุดซึ้งว่าเจอกันมาทุกคน ถ้า Error ด้วยปัญหาที่มันเกินความคาดหมายก็ยังพอทำเนา
แต่ถ้ามา Error ด้วยเรื่องกระโหลกกระลาแบบตัวอย่างต่อไปนี้หลายๆคนคงเซ็งไม่น้อยไปดูตัวอย่างกัน
ตัวอย่าง : การตรวจสอบข้อมูลชนิดตัวเลขที่ >= 15 |
ดูๆ
แล้วมันก็ไม่น่าผิดอะไร เงือนไขแรกก็ตรวจสอบว่าเป็นตัวเลขหรือเปล่า
เงือนไขที่สองก็ตรวจสอบว่าค่ามากกว่าหรือเท่ากับ 15 หรือเปล่า ลอง
Run ดูก็ไม่มีปัญหาอะไรแต่พอใส่ตัวอักษรเข้าไปเท่านั้นแหละ
มันมาเลย Conversion
From String “A” To Type ‘Double’ Is Not Valid. อันนี้ต้องบอกว่าถ้าใครไม่เจอไม่มีทางรู้ว่ามันรู้สึกยังไง
ตอนผมเจอมันครั้งแรกผมงงเป็นไก่ตาแตก เพราะมั้นใจอย่างยิ่งว่า
เงือนไขที่ผมกำหนดมันไม่ผิดแน่นอน เพราะจากตัวอย่าง มันควรเจอแล้วว่า
เขตข้อมูลที่กำหนดมันไม่ใช้ตัวเลข จึงควรข้าม เงือนไขที่ 2 ไป
(แบบที่เราๆมักคิดกันตอนที่เรียนหนังสือเพราะถ้าอันแรกผิด ถึงอันหลังจะถูกมันก็ผิดอยู่ดีจึงไม่จำเป็นอะไรที่ต้องไปตรวจสอบ สำหรับนักพัฒนาที่พัฒนาโปรแกรมมาซักระยะเวลาหนึ่งทุกคนต้องเจอเหตุการณ์แบบนี้อย่างแน่นอน
ซึ่งหลายๆคนมักจะแก้ปัญหานี้โดยวิธีการใช้ IF ซ้อน IF อีกทีหนึ่ง (สมัยก่อนผมก็ใช้วิธีนี้)
ซึ่งก็ไม่ผิดอะไร แต่มันจะทำให้ Code มันยืดไปหน่อยและการกลับมาทำความเข้าใจกับ Code ในภายหลังก็ทำได้ยากเช่นกัน ซึ่ง AndAlso แก้ปัญหานี้ได้ตรงจุดพอดีเพราะการทำงานของ AndAlso นั้นจะทำการข้ามการตรวจสอบเงือนไขที่ 2 ทันทีถ้าเงือนไขแรกเป็น False
ไม่มีความคิดเห็น:
แสดงความคิดเห็น