(รูปหมายเลข 111)
.PNG)
- NetBeans IDE จะจัดการความผิดพลาดโดยเรียกคลาส Logger เป็นผลให้โปรแกรมยุติการทำงานลงหากเกิดความผิดพลาด (รับทราบความผิดพลาด) ซึ่งในที่นี้คือ ความผิดพลาดเนื่องจากหาไฟล์ตามที่ระบุไม่พบ (File Not Found
Exception)
(รูปหมายเลข 112)
.PNG)
- ลบบรรทัดที่ 18 ออกเปลี่ยนเป็น System.out.println(sourceCodePath + " not found."); ตามรูป เพื่อที่เราจะแสดงความผิดพลาดนี้ออกทางหน้าต่าง Output
***หมายเหตุ ภาษาจาวากำหนดให้ใช้เครื่องหมาย + สำหรับเชื่อมต่อสตริงกับสตริง หรือสตริงกับตัวแปรหรืออินสแตนท์
(รูปหมายเลข 113)
.PNG)
- จากรูป บรรทัดที่ 18 เขียน (เพิ่มลดบรรทัดตามความเหราะสม) int charIndex = reader.read();
- charIndex คือตัวแปรรับผลลัพธ์ที่ส่งมาจาก reader.read()
- เช่นเคย reader.read() อาจเกิดความผิดพลาดได้ คลิกที่รูปหลอดไฟสีเหลือง เลือก Surround Statement with try-catch จะปรากฏการจัดการความผิดพลาดที่อาจเกิดจาก IOException ดังรูปต่อไป
(รูปหมายเลข 114)
.PNG)
- จากรูปบรรทัดที่ 27 เราจะจัดการความผิดพลาดที่อาจเกิดจาก IOException เสียเองโดยเขียน System.out.println(sourceCodePath + " reading exception.");
- บรรทัดที่ 16 ประกาศอินสแตนท์ชื่อ sourceCode มีชนิดเป็น String มีค่าเริ่มต้นเป็นสตริงว่าง "" (ความหมายต่างจากค่า null)
- บรรทัดที่ 22 เขียนอัลกอริทึมวนรอบอ่าน
รหัสอักษรทีละตัว แล้วแปลงเป็นชนิด char ด้วยหลักการ
Explicit Type Conversion เสียก่อน จากนั้นนำผลลัพธ์ผ่านเมธอด valueOf() ของคลาส String เพื่อให้เปลี่ยนเป็นสตริง จะได้นำมาเชื่อมต่อกับสตริงก่อนหน้านี้ได้ (บรรทัดที่ 23)
(รูปหมายเลข 115)
.PNG)
- สำหรับเส้นหยักสีเหลืองอมส้ม (หรือส้มอมเหลือง -*-) ไม่ใช่ความผิดพลาดทางไวยากรณ์ภาษาหรอกครับ เพียงแต่เป็นคลาสที่ได้ import เข้ามา แต่ไม่ถูกเรียกใช้งานจากบริเวณใดๆในไฟล์ ดังนั้นให้ลบทิ้ง
(รูปหมายเลข 116)
.PNG)
- เพื่อนๆสามารถสั่งให้ NetBeans IDE ซ่อนหรือแสดงโค้ดได้ ด้วยการคลิกที่เครื่องหมายกล่องสีเหลี่ยม + หรือ - ข้างๆหมายเลขบรรทัด
- บรรทัดที่ 33 เพิ่มบริการ getSourceCode() เพื่อส่ง sourceCode ที่เกิดจากกระบวนการ read() ออกไปยังผู้เรียกในไฟล์ MainProgram.java
(รูปหมายเลข 117)
.PNG)
- ภายหลังสร้างและโค้ดคลาส SourceCodeReader กลับมาที่ไฟล์ MainProgram.java เราสังเกตได้ว่าเส้นหยักสีแดงบางส่วนได้หายไปแล้ว (แต่ยังมีอีกเยอะ ...โอ้เหนื่อย) และคลาส SourceCodeReader นี้พร้อมแล้วสำหรับการทดสอบครับ
อ่านเนื้อหาที่เกี่ยวข้อง
ก่อนหน้า หรือ
ถัดไป
ไม่มีความคิดเห็น:
แสดงความคิดเห็น