Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ตัวสร้างสามารถโยนข้อยกเว้นใน Java ได้หรือไม่?


ใช่ ตัวสร้าง ได้รับอนุญาตให้โยนข้อยกเว้นใน Java

ตัวสร้าง เป็นวิธีการพิเศษที่ใช้ในการเริ่มต้นวัตถุ และใช้เพื่อสร้างวัตถุของชั้นเรียนโดยใช้ คำหลักใหม่ โดยที่วัตถุเรียกอีกอย่างว่า ฉัน ท่าทาง ของชั้นเรียน แต่ละอ็อบเจ็กต์ของคลาสจะมีสถานะเป็นของตัวเอง (ตัวแปรอินสแตนซ์ ) และการเข้าถึงเมธอดของคลาส

โยนข้อยกเว้นจากตัวสร้าง

  • A ตรวจสอบข้อยกเว้น สามารถใช้เพื่อระบุปัญหาที่ถูกต้องเมื่อพยายามสร้างอินสแตนซ์ ในขณะที่ข้อยกเว้นที่ไม่ได้ตรวจสอบ โดยทั่วไปจะระบุจุดบกพร่องในโค้ดไคลเอ็นต์หรือในตัวสร้างเอง
  • ในทั้งสองกรณี ออบเจ็กต์ได้รับการจัดสรรจริงใน ฮีปสเปซ แต่จะไม่มีการส่งคืนการอ้างอิง ออบเจ็กต์ยังคงอยู่ในสถานะเริ่มต้นบางส่วนจนกว่าจะได้รับขยะ ดังนั้นเราจึงสรุปได้ว่าการบันทึกการอ้างอิงไปยังอ็อบเจ็กต์จากตัวสร้างเอง (โดยใช้ สิ่งนี้ อ้างอิง) เป็นสิ่งที่มีความเสี่ยง เนื่องจากเราอาจให้สิทธิ์การเข้าถึงวัตถุในสถานะที่ไม่ถูกต้อง
  • สิ่งสำคัญอีกประการที่ควรทราบเกี่ยวกับข้อยกเว้นในตัวสร้างนั้นเกี่ยวข้องกับ การสะท้อน . เมื่อเราต้องการเรียกใช้ ตัวสร้างที่ว่างเปล่า โดยใช้คลาสอ็อบเจกต์ เช่น test บางครั้งเราใช้เมธอด test.newInstance()
  • ข้อยกเว้นใดๆ ที่เกิดจากตัวสร้างจะถูกเผยแพร่โดยไม่มีการเปลี่ยนแปลง กล่าวอีกนัยหนึ่ง newInstance() เมธอดอาจส่งตรวจสอบข้อยกเว้น ที่มันไม่แม้แต่จะประกาศ

ตัวอย่าง

<ก่อน> ConstructorExceptionTest คลาสสาธารณะ { สาธารณะ ConstructorExceptionTest () พ่น InterruptedException { System.out.println ("กำลังเตรียมวัตถุ"); เธรด. สลีป (1000); System.out.println("วัตถุพร้อม"); } โมฆะคงที่สาธารณะหลัก (สตริง args []) { ลอง { การทดสอบ ConstructorExceptionTest =ใหม่ ConstructorExceptionTest (); } จับ (InterruptedException จ) { System.out.println ("ถูกขัดจังหวะ..."); } }}

ผลลัพธ์

การเตรียม ObjectObject พร้อมแล้ว