วิธีจัดการข้อยกเว้นที่กำหนดเองใน Java



บทความนี้จะช่วยให้คุณเข้าใจข้อยกเว้นที่กำหนดเองใน Java และจะสนับสนุนคำอธิบายพร้อมการสาธิตแนวคิดในทางปฏิบัติ

ให้ผู้ใช้มีตัวเลือกในการสร้างข้อยกเว้นของตนเอง ข้อยกเว้นดังกล่าวเรียกว่าข้อยกเว้นที่กำหนดเองหรือข้อยกเว้นที่กำหนดโดยผู้ใช้ ในบทความนี้เราจะสำรวจข้อยกเว้นที่กำหนดเองใน Java

คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้





เริ่มต้นบทความนี้เกี่ยวกับข้อยกเว้นแบบกำหนดเองใน Java

ข้อยกเว้นที่กำหนดเองใน Java

สามารถสร้างข้อยกเว้นที่กำหนดเองได้ดังนี้



[Java]
// คลาสที่แสดงถึงข้อยกเว้นที่ผู้ใช้กำหนด
คลาส InvalidAgeException ขยาย Exception {
InvalidAgeException (สตริง s) {
สุดยอด
}
}
[/ java]

วิธีเปลี่ยน double เป็น int ใน java
// คลาสที่ใช้การทดสอบคลาส InvalidAgeException {static void validate (int age) พ่น InvalidAgeException {if (age<18) throw new InvalidAgeException('Invalid') else System.out.println('Eligible to Drive') } public static void main(String args[]){ try{ validate(15) }catch(Exception m){System.out.println('Exception: '+m)} System.out.println('Exit') } } 

เอาท์พุต:

ข้อยกเว้น: InvalidAgeException: ไม่ถูกต้อง



ออก

ไปต่อกับบทความนี้เกี่ยวกับข้อยกเว้นที่กำหนดเองใน Java

วิธีรับความยาวของอาร์เรย์ในจาวาสคริปต์

ต้องการข้อยกเว้นที่กำหนดเอง

บ่อยครั้งที่โปรแกรมเมอร์พบว่าจำเป็นต้องระบุข้อยกเว้นของตนเอง

เหตุผลในการแนะนำข้อยกเว้นเหล่านี้อาจเป็นดังนี้:

  • มีข้อยกเว้นบางประการที่กำหนดไว้สำหรับตรรกะทางธุรกิจและเวิร์กโฟลว์เท่านั้น สิ่งนี้ช่วยให้ผู้ใช้สามารถระบุที่มาของปัญหาได้
  • เพื่อจับและจัดการกับข้อยกเว้นจาวาที่มีอยู่หรือที่กำหนดไว้ก่อนหน้านี้

Java จัดเตรียมข้อยกเว้นให้กับผู้ใช้สองประการ:

  • ข้อยกเว้นที่ตรวจสอบเอง
  • Custom Unchecked Exception

ไปต่อกับบทความนี้เกี่ยวกับข้อยกเว้นที่กำหนดเองใน Java

ข้อยกเว้นที่ตรวจสอบเอง

ข้อยกเว้นที่ตรวจสอบแบบกำหนดเองเป็นข้อยกเว้นที่ขยาย java.lang.Exception สามารถกู้คืนได้ตามธรรมชาติและได้รับการจัดการอย่างชัดเจน ในตัวอย่างต่อไปนี้โค้ดถูกเขียนขึ้นเพื่อส่งคืนบรรทัดแรกของไฟล์เป็นเอาต์พุต:

ลอง (ไฟล์สแกนเนอร์ = สแกนเนอร์ใหม่ (ไฟล์ใหม่ (ชื่อไฟล์))) {if (file.hasNextLine ()) return file.nextLine ()} catch (FileNotFoundException e) {}

รหัสแสดงข้อยกเว้น FileNotFound ผู้ใช้ไม่ทราบสาเหตุของข้อยกเว้นนี้ เราไม่ทราบแหล่งที่มาของข้อยกเว้นไม่ว่าจะเกิดจากการไม่มีอยู่ของไฟล์หรือเนื่องจากชื่อไฟล์ไม่ถูกต้อง สำหรับการนำข้อยกเว้นแบบกำหนดเองไปใช้คลาส java.lang.Exception จะถูกขยาย

คลาสสาธารณะ InvalidFileNameException ขยาย Exception {public InvalidFileNameException (String errorMessage) {super (errorMessage)}}

สร้างข้อยกเว้นที่ตรวจสอบแบบกำหนดเองที่เรียกว่า InvalidFileNameException

ต้องมีตัวสร้างในขณะที่สร้างข้อยกเว้น ในกรณีของเราตัวสร้างใช้ String เป็นข้อความแสดงข้อผิดพลาดและเรียกตัวสร้างคลาสพาเรนต์

ข้อกำหนดเบื้องต้นสำหรับหลักสูตรปัญญาประดิษฐ์
ลอง (ไฟล์ Scanner = เครื่องสแกนใหม่ (ไฟล์ใหม่ (fileName))) {if (file.hasNextLine ()) return file.nextLine ()} catch (FileNotFoundException e) {if (! isCorrectFileName (fileName)) {throw new InvalidFileNameException ( 'ชื่อไฟล์ไม่ถูกต้อง:' + fileName)}}

แม้ว่าตอนนี้ผู้ใช้จะทราบถึงข้อยกเว้นที่แน่นอน แต่เราได้สูญเสียสาเหตุหลักของข้อยกเว้น ซึ่งสามารถแก้ไขได้โดยการเพิ่ม java.lang.Throwable ไปยังตัวสร้าง ขณะนี้ InvalidFileNameException สามารถใช้กับสาเหตุหลักของข้อยกเว้น:

สาธารณะ InvalidFileNameException (String errorMessage, Throwable err) {super (errorMessage, err)}

ไปต่อกับบทความนี้เกี่ยวกับข้อยกเว้นที่กำหนดเองใน Java

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

ข้อยกเว้นที่ตรวจสอบแบบกำหนดเองขยาย java.lang.RuntimeException ไม่สามารถกู้คืนได้ในธรรมชาติ

คลาสสาธารณะ InvalidFileExtensionException ขยาย RuntimeException {public InvalidFileExtensionException (String errorMessage, Throwable err) {super (errorMessage, err)}}

ข้อยกเว้นนี้ใช้ดังนี้:

ลอง (ไฟล์สแกนเนอร์ = เครื่องสแกนใหม่ (ไฟล์ใหม่ (fileName))) {if (file.hasNextLine ()) {return file.nextLine ()} else {throw new IllegalArgumentException ('File is not readable.')}} catch ( FileNotFoundException err) {if (! isCorrectFileName (fileName)) {throw new InvalidFileNameException ('Invalid filename:' + fileName, err)}} catch (IllegalArgumentException err) {if (! containExtension (fileName)) {throw new InvalidFileExtension (fileName)) ไม่มีนามสกุลใด ๆ : '+ fileName, err)}}

ข้อยกเว้นที่ผู้ใช้กำหนดมีความสำคัญเนื่องจากช่วยให้เราสามารถกำหนดข้อยกเว้นที่เป็นของเราเองได้

ดังนั้นเราจึงมาถึงจุดสิ้นสุดของบทความนี้ หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดู Java Training โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด