ความเข้าใจที่ดีขึ้นเกี่ยวกับ Checked Vs. ข้อยกเว้นที่ไม่ได้ตรวจสอบ - วิธีจัดการกับข้อยกเว้นที่ดีกว่าใน Java ได้อย่างไร

เผยแพร่แล้ว: 2014-09-15

Java ตรวจสอบข้อยกเว้นโดย Crunchify

ตรวจสอบข้อยกเว้น

Checked Exception คืออะไรในภาษาการเขียนโปรแกรม Java ในภาษาง่าย ๆ : ข้อยกเว้นซึ่งถูกตรวจสอบในเวลาคอมไพล์ที่เรียกว่าการตรวจสอบข้อยกเว้น สิ่งเหล่านี้บางส่วนถูกกล่าวถึงด้านล่าง หากในรหัสของคุณหากบางวิธีส่ง checked exception แล้ว จากนั้นเมธอดต้อง handle the exception หรือต้องระบุข้อยกเว้นโดยใช้คีย์เวิร์ด throws

  1. IOException
  2. SQLException
  3. DataAccessException
  4. ClassNotFoundException
  5. InvocationTargetException
  6. MalformedURLException

ลองมาดูตัวอย่าง:

ในตัวอย่างด้านล่าง เรากำลังจะได้รับเนื้อหาของเว็บไซต์ “Crunchify.com” และพิมพ์ลงในคอนโซล ระหว่างการดำเนินการนี้ โปรแกรม Java จะส่ง MalformedURLException หรือ IOException ที่บรรทัดที่ไฮไลต์ด้านล่าง

มีสองวิธีในการแก้ปัญหานี้ Add throws clause หรือ Add Try, Catch block รหัสของคุณเพื่อแก้ปัญหา นี่คือรหัสที่อัปเดต

  1. แก้ไขบรรทัดที่ 16 และ 20 และเพิ่มการ throws IOException
  2. เพิ่มลอง catch block บน 26,42,43

ข้อยกเว้นที่ไม่ได้เลือก

Unchecked Exception ใน Java คือ Exceptions ที่ NOT verified during Compile time ข้อยกเว้นเหล่านี้เกิดขึ้นเนื่องจากการเขียนโปรแกรมไม่ถูกต้อง

โปรแกรมจะไม่ทำให้เกิดข้อผิดพลาดในการรวบรวม

ข้อยกเว้นที่ไม่ได้ตรวจสอบทั้งหมดเป็นคลาสย่อยโดยตรงของคลาส RuntimeException

Simple Example : คุณได้สร้างแบบฟอร์มออนไลน์ที่ยอมรับการป้อนข้อมูลของผู้ใช้ มันเป็นรูปแบบข้อความฟรี การใช้อาจป้อนค่าที่ไม่ถูกต้องในกรณีของฟิลด์อีเมลหรือฟิลด์ชื่อผู้ใช้หรือฟิลด์หมายเลขโทรศัพท์

หากคุณไม่มีการตรวจสอบที่ฝั่งไคลเอ็นต์ มีความเป็นไปได้มากกว่าที่จะได้รับ Runtime Validation Exception ในขณะที่เรียกใช้แอปพลิเคชันในการผลิต ข้อผิดพลาดอาจเกิดขึ้นจากการดำเนินการ DB หรือการแปลงฟิลด์จากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่ง

ด้านล่างนี้คือประเภทของ Unchecked Exceptions:

  • NullPointerException
  • ArrayIndexOutOfBound
  • IllegalArgumentException
  • IllegalStateException

สิ่งที่ทำให้ฉันรำคาญที่สุดคือ NullPointer Exception ฉันได้เขียนบทความโดยละเอียดเกี่ยวกับ NPE เมื่อสัปดาห์ที่แล้ว

มีคำแนะนำที่แตกต่างกันทั้งหมด 8 ข้อเพื่อหลีกเลี่ยง NPE

Java Checked Vs Unchecked ข้อยกเว้น - Crunchify

ArrayIndexOutofBoundException - Crunchify Tips

ใน Java 7 คุณสามารถจัดการข้อยกเว้นหลายรายการใน Catch block เดียว คุณสามารถเปลี่ยนบรรทัดที่ 13 จากบรรทัดด้านบนเปลี่ยนเป็นด้านล่าง

โดยสรุป ข้อยกเว้นที่ตรวจสอบแล้วและไม่ได้ตรวจสอบจะได้รับการจัดการโดยใช้คำหลัก try, catch และ finally

ในแง่ของ Functionality Checked และ Unchecked Exception จะเหมือนกัน