วันเสาร์ที่ 23 ตุลาคม พ.ศ. 2553

Compiler : คลาส SourceCodeReader 2 (ภาษา Java)

(รูปหมายเลข 111)
- NetBeans IDE จะจัดการความผิดพลาดโดยเรียกคลาส Logger เป็นผลให้โปรแกรมยุติการทำงานลงหากเกิดความผิดพลาด (รับทราบความผิดพลาด) ซึ่งในที่นี้คือ ความผิดพลาดเนื่องจากหาไฟล์ตามที่ระบุไม่พบ (File Not Found Exception)

(รูปหมายเลข 112)
- ลบบรรทัดที่ 18 ออกเปลี่ยนเป็น System.out.println(sourceCodePath + " not found."); ตามรูป เพื่อที่เราจะแสดงความผิดพลาดนี้ออกทางหน้าต่าง Output
***หมายเหตุ ภาษาจาวากำหนดให้ใช้เครื่องหมาย + สำหรับเชื่อมต่อสตริงกับสตริง หรือสตริงกับตัวแปรหรืออินสแตนท์

(รูปหมายเลข 113)
- จากรูป บรรทัดที่ 18 เขียน (เพิ่มลดบรรทัดตามความเหราะสม) int charIndex = reader.read();
- charIndex คือตัวแปรรับผลลัพธ์ที่ส่งมาจาก reader.read()
- เช่นเคย reader.read() อาจเกิดความผิดพลาดได้ คลิกที่รูปหลอดไฟสีเหลือง เลือก Surround Statement with try-catch จะปรากฏการจัดการความผิดพลาดที่อาจเกิดจาก IOException ดังรูปต่อไป

(รูปหมายเลข 114)
- จากรูปบรรทัดที่ 27 เราจะจัดการความผิดพลาดที่อาจเกิดจาก IOException เสียเองโดยเขียน System.out.println(sourceCodePath + " reading exception.");
- บรรทัดที่ 16 ประกาศอินสแตนท์ชื่อ sourceCode มีชนิดเป็น String มีค่าเริ่มต้นเป็นสตริงว่าง "" (ความหมายต่างจากค่า null)
- บรรทัดที่ 22 เขียนอัลกอริทึมวนรอบอ่านรหัสอักษรทีละตัว แล้วแปลงเป็นชนิด char ด้วยหลักการ Explicit Type Conversion เสียก่อน จากนั้นนำผลลัพธ์ผ่านเมธอด valueOf() ของคลาส String เพื่อให้เปลี่ยนเป็นสตริง จะได้นำมาเชื่อมต่อกับสตริงก่อนหน้านี้ได้ (บรรทัดที่ 23)

(รูปหมายเลข 115)
- สำหรับเส้นหยักสีเหลืองอมส้ม (หรือส้มอมเหลือง -*-) ไม่ใช่ความผิดพลาดทางไวยากรณ์ภาษาหรอกครับ เพียงแต่เป็นคลาสที่ได้ import เข้ามา แต่ไม่ถูกเรียกใช้งานจากบริเวณใดๆในไฟล์ ดังนั้นให้ลบทิ้ง

(รูปหมายเลข 116)
- เพื่อนๆสามารถสั่งให้ NetBeans IDE ซ่อนหรือแสดงโค้ดได้ ด้วยการคลิกที่เครื่องหมายกล่องสีเหลี่ยม + หรือ - ข้างๆหมายเลขบรรทัด
- บรรทัดที่ 33 เพิ่มบริการ getSourceCode() เพื่อส่ง sourceCode ที่เกิดจากกระบวนการ read() ออกไปยังผู้เรียกในไฟล์ MainProgram.java

(รูปหมายเลข 117)
- ภายหลังสร้างและโค้ดคลาส SourceCodeReader กลับมาที่ไฟล์ MainProgram.java เราสังเกตได้ว่าเส้นหยักสีแดงบางส่วนได้หายไปแล้ว (แต่ยังมีอีกเยอะ ...โอ้เหนื่อย) และคลาส SourceCodeReader นี้พร้อมแล้วสำหรับการทดสอบครับ

อ่านเนื้อหาที่เกี่ยวข้อง ก่อนหน้า หรือ ถัดไป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น