ให้ผู้ใช้มีตัวเลือกในการสร้างข้อยกเว้นของตนเอง ข้อยกเว้นดังกล่าวเรียกว่าข้อยกเว้นที่กำหนดเองหรือข้อยกเว้นที่กำหนดโดยผู้ใช้ ในบทความนี้เราจะสำรวจข้อยกเว้นที่กำหนดเองใน 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
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด