ข้อความแสดงข้อผิดพลาด: java.lang.NullPointerException - จะทำอย่างไร?
คอมไพเลอร์ตรวจสอบโปรแกรมที่เขียนสำหรับทุกสิ่งยกเว้นหนึ่ง: ข้อยกเว้นรันไทม์ ข้อยกเว้นดังกล่าวคือตัวอย่างเช่น NullPointerException ซึ่งเป็นของแพ็คเกจจำเป็น java.lang ในภาษาการเขียนโปรแกรม Java
คอมไพเลอร์จะโยน java.lang.NullPointerException เมื่อใด
ข้อยกเว้นมักเกิดขึ้นระหว่างขั้นตอนการทดสอบ สิ่งนี้ใช้เฉพาะกับ NullPointerException ซึ่งมักจะพบว่าเป็นมือใหม่เมื่อ พูด ถึงการเขียนโปรแกรม โดยเฉพาะอย่างยิ่งมันเป็นตัวแปรที่ชี้ไปยังวัตถุที่ว่างเปล่า ตัวอย่างเช่นข้อผิดพลาดเกิดขึ้นในกรณีต่อไปนี้:
- เมื่อเข้าถึงองค์ประกอบของอาร์เรย์และองค์ประกอบไม่มีค่า
- เมื่อสอบถามความยาวของอาร์เรย์ที่มีค่าเป็นศูนย์
- หากวัตถุถูกสร้างโดยไม่มีตัวดำเนินการใหม่และมีความพยายามในการดำเนินการกับตัวแปรอ้างอิง
- ในตัวอย่างของเรารีโมทคอนโทรลเป็นตัวแปรอ้างอิง (ตัวชี้) ที่ชี้ไปยังวัตถุเครื่องพิมพ์จริง ตัวแปรนี้ใช้เพื่อดำเนินการเช่นส่งข้อความแสดงข้อผิดพลาดไปยังเครื่องพิมพ์การคำนวณระดับหมึก ฯลฯ หากรีโมทควบคุมชี้ไปที่วัตถุว่างเปล่าหรือไม่มีวัตถุตัวแปรอ้างอิงจะมีค่าเป็นศูนย์
วิธีแก้ไขข้อผิดพลาด
ข้อยกเว้นสามารถถูกดักจับภายใต้ Java ด้วยบล็อก " ลอง {... } catch {(Exception e)} " อย่างไรก็ตามวิธีนี้ไม่จำเป็นเสมอไปและสร้างค่าใช้จ่ายด้วย มันเป็นการดีกว่าที่จะเก็บเคล็ดลับต่อไปนี้ไว้ในใจ:
- ตรวจสอบว่าวัตถุของคุณถูกสร้างขึ้น หากไม่ใช่กรณีนี้ให้สร้างโดยใช้ไวยากรณ์คำสั่ง " sample object name = new sample object (variables); "
- ด้วยโหมดการแก้ไขข้อบกพร่องคุณสามารถตรวจสอบรหัสบรรทัดของคุณตามบรรทัดและดูผลกลาง ตรวจสอบให้แน่ใจว่าคุณไม่ได้เขียนทับวัตถุที่คุณสร้างหรือบันทึกด้วยค่า NULL ซึ่งหมายความว่าวัตถุนั้นไม่สามารถใช้งานได้อีกต่อไปและคำสั่งวัตถุเพิ่มเติมจะทำให้เกิดข้อผิดพลาด
- เคล็ดลับ: หากคุณเปลี่ยนวัตถุของคุณบ่อยๆให้คุ้นเคยกับการตรวจสอบวัตถุของคุณก่อนและหลังการเปลี่ยนแปลงพื้นฐานโดยใช้การสืบค้น if (" if (ตัวอย่าง วัตถุ ! = NULL) {... } ")
ในคำแนะนำเชิงปฏิบัติถัดไปเราจะอธิบายวิธีที่คุณสามารถใช้ Lambda Expressions ใน Java