Logo th.boatexistence.com

คอมไพเลอร์รู้ได้อย่างไรเกี่ยวกับการตรวจสอบข้อยกเว้น?

สารบัญ:

คอมไพเลอร์รู้ได้อย่างไรเกี่ยวกับการตรวจสอบข้อยกเว้น?
คอมไพเลอร์รู้ได้อย่างไรเกี่ยวกับการตรวจสอบข้อยกเว้น?
Anonim

คอมไพเลอร์สำหรับตรวจสอบภาษาการเขียนโปรแกรม Java ในเวลาคอมไพล์ว่าโปรแกรม มีตัวจัดการสำหรับข้อยกเว้นที่ตรวจสอบ โดยการวิเคราะห์ว่าการตรวจสอบข้อยกเว้นใดอาจเป็นผลมาจากการดำเนินการตามวิธีการหรือ ตัวสร้าง สำหรับข้อยกเว้นที่ตรวจสอบแต่ละรายการซึ่งเป็นผลลัพธ์ที่เป็นไปได้ ประโยคการโยนสำหรับเมธอด (§8.4.

คอมไพเลอร์รู้ได้อย่างไรว่ามีข้อยกเว้นประเภทใดเกิดขึ้น

เมื่อมีข้อยกเว้นในโปรแกรมของคุณ catch blocks จะถูกตรวจสอบตามลำดับจากบนลงล่าง เพื่อค้นหาการจับคู่ระหว่างประเภทของข้อยกเว้นที่เกิดขึ้นกับประเภทของข้อยกเว้นที่ catch block กำลังจัดการ

มีการตรวจสอบข้อยกเว้นอย่างไรในช่วงเวลาคอมไพล์

2 คำตอบ. ตรวจสอบข้อยกเว้นที่ตรวจสอบแล้ว ณ เวลารวบรวมเพื่อให้แน่ใจว่าคุณกำลังจัดการกับข้อยกเว้น โดยจับพวกมันหรือประกาศวิธีการบรรจุส่งข้อยกเว้น ที่รันไทม์ ไม่มีความแตกต่างระหว่างข้อยกเว้นที่ตรวจสอบและไม่ได้รับการตรวจสอบ: พวกเขา ได้รับการปฏิบัติเหมือนกันโดย JVM

ฉันจะค้นหาข้อยกเว้นที่ตรวจสอบได้อย่างไร

  1. checked ข้อยกเว้นถูกตรวจสอบโดยคอมไพเลอร์และในฐานะโปรแกรมเมอร์คุณต้องจัดการกับมันโดยใช้ try-catch-finally throws
  2. unchecked ข้อยกเว้นไม่ได้ถูกตรวจสอบโดยคอมไพเลอร์ แต่คุณสามารถเลือกจัดการได้อย่างชัดเจน

ตรวจสอบข้อยกเว้นที่สามารถจับได้หรือไม่

3 คำตอบ. ข้อยกเว้นที่ไม่ได้ตรวจสอบคือข้อยกเว้นที่ไม่จำเป็นต้องตรวจพบในบล็อก try - catch ข้อยกเว้นที่ไม่ได้ตรวจสอบคือคลาสย่อยของคลาส RuntimeException หรือ Error ข้อยกเว้นที่ตรวจสอบแล้วคือข้อยกเว้นที่ต้องถูกจับในการลอง - catch block