ข้อยกเว้นคือเหตุการณ์ที่ไม่คาดคิดซึ่งเกิดขึ้นระหว่างการทำงานของโปรแกรม เมื่อโค้ดของคุณมีข้อยกเว้น โฟลว์ของโปรแกรมของคุณจะถูกยกเลิก
สิ่งสำคัญคือคุณต้องจัดการกับข้อยกเว้นอย่างถูกต้องเมื่อคุณกำลังเขียนโค้ดใน Java มิฉะนั้น รหัสของคุณอาจยุติลงระหว่างการดำเนินการและส่งผลต่อประสบการณ์ของผู้ใช้ปลายทาง
นั่นคือที่มาของคีย์เวิร์ด throw and throws คีย์เวิร์ด throw and throws ของ Java ใช้เพื่อจัดการกับข้อยกเว้นใน Java บทช่วยสอนนี้จะกล่าวถึงวิธีใช้คำหลักเหล่านี้ใน Java โดยมีการอ้างอิงถึงตัวอย่าง
ข้อยกเว้น Java
ใน Java มีสองเหตุการณ์ที่สามารถส่งผลกระทบต่อการไหลของโปรแกรมของคุณ:ข้อผิดพลาดและข้อยกเว้น
เหตุการณ์แรกคือข้อผิดพลาด ซึ่งแสดงถึงปัญหาใน Java Virtual Machine เช่น หน่วยความจำรั่ว ระบบหน่วยความจำไม่เพียงพอ และปัญหาความเข้ากันได้ของไลบรารี เมื่อพบข้อผิดพลาด โปรแกรมไม่น่าจะกู้คืนได้ อย่างไรก็ตาม ข้อผิดพลาดมักจะอยู่นอกเหนือการควบคุมของ coder ดังนั้นใน Java เราจะไม่จัดการข้อผิดพลาด
ข้อยกเว้นเป็นกิจกรรมประเภทที่ 2 ที่อาจส่งผลต่อโปรแกรมของคุณ สามารถตรวจจับและจัดการข้อยกเว้นได้ในรหัสของคุณ เมื่อพบข้อยกเว้น อ็อบเจ็กต์จะถูกสร้างขึ้นพร้อมกับข้อมูลเกี่ยวกับข้อยกเว้น ซึ่งคุณสามารถใช้เพื่อบอกโค้ดของคุณว่าควรเกิดอะไรขึ้นหากพบข้อยกเว้น
เหตุผลบางประการที่เกิดข้อยกเว้น ได้แก่:
- ข้อผิดพลาดในรหัสของคุณ
- การเปิดไฟล์ที่ไม่มีอยู่จริง
- ข้อมูลผู้ใช้ไม่ถูกต้อง
- สูญเสียการเชื่อมต่อเครือข่าย
มีข้อยกเว้นสองประเภทที่คุณควรรู้ก่อนเริ่มจัดการข้อยกเว้น:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
- มีการตรวจสอบข้อยกเว้นที่ไม่ได้ตรวจสอบในขณะใช้งาน ซึ่งรวมถึง
ArithmeticException
และArrayIndexOutOfBoundsException
. - ตรวจสอบข้อยกเว้นที่ตรวจสอบในเวลาคอมไพล์ และรวม
IOException
และInterruptedException
.
ส่วนใหญ่ คุณต้องการจัดการข้อยกเว้นที่ตรวจสอบในโค้ดของคุณ ทั้งนี้เนื่องจากข้อยกเว้นที่ไม่ได้ตรวจสอบโดยทั่วไปมักเกิดจากข้อผิดพลาดในการเขียนโปรแกรม แทนที่จะเป็นพฤติกรรมที่ไม่คาดคิดในโค้ดของคุณ
Java โยนคำสำคัญ
Java throws
คีย์เวิร์ดใช้เพื่อประกาศประเภทของข้อยกเว้นที่อาจเกิดขึ้นในกลุ่มโค้ด นี่คือไวยากรณ์สำหรับส่วนคำสั่ง throws:
accessModifier return functionName() throws Exception1, Exception2 { // Run code }
ลองใช้ตัวอย่างเพื่อแสดงวิธีการทำงาน สมมติว่าเรากำลังสร้างโปรแกรมสำหรับโรงภาพยนตร์ที่ตรวจสอบอายุของลูกค้าที่รับชมภาพยนตร์มานานกว่า 16 ปี หากลูกค้าอายุต่ำกว่า 16 ปี ไม่ควรได้รับอนุญาตให้เข้าไปในภาพยนตร์ ถ้าพวกเขาอายุ 16 หรือมากกว่า พวกเขาควรจะได้รับอนุญาตให้เข้า
นี่คือรหัสที่เราจะใช้ตรวจสอบอายุของลูกค้าและโยนข้อยกเว้น ArithmeticException หากลูกค้าอายุต่ำกว่า 16 ปี:
class Main { public static void verifyAge(int age) throws ArithmeticException { if (age < 16) { throw new ArithmeticException("This customer is not old enough to see the movie."); } else { System.out.println("This customer is old enough to see the movie."); } } public static void main(String[] args) { verifyAge(14); } }
รหัสของเราส่งคืน:
ข้อยกเว้นในเธรด “main” java.lang.ArithmeticException:This customer is not old enough to see the movie.
at Main.verifyAge(Main.java:4)
at Main.main(Main.java:11)
เมื่อเราเรียกใช้โปรแกรมนี้ พารามิเตอร์ age ที่เราระบุในโปรแกรมหลักของเราจะถูกตั้งค่าเป็น 14 ซึ่งน้อยกว่า 16 ดังนั้นเมื่อ verifyAge()
วิธีดำเนินการคำสั่ง age < 16
ประเมินว่าเป็นจริง และมีการโยน ArithmeticException
คีย์เวิร์ด throws ใช้เพื่อกำหนดประเภทของข้อยกเว้นที่จะถูกส่งคืนโดย verifyAge()
กระบวนการ. คีย์เวิร์ด throw ใช้เพื่อโยนข้อยกเว้นในโปรแกรมของเรา
Java Throw คำสำคัญ
คีย์เวิร์ดโยน Java ใช้เพื่อโยนข้อยกเว้นเดียวในโค้ดของคุณ คีย์เวิร์ด throw ตามด้วยอ็อบเจ็กต์ที่จะส่งในโปรแกรม หากพบข้อยกเว้น
นี่คือไวยากรณ์สำหรับคำหลัก Java throw:
throw throwObject;
มาดูตัวอย่างการใช้คำสั่ง throw เพื่อจัดการกับข้อยกเว้นใน Java
โยนข้อยกเว้นที่ตรวจสอบแล้ว
สมมติว่าเราต้องการให้ข้อความปรากฏว่า "ไม่มีไฟล์นี้" เมื่อ IOException
จะพบในโปรแกรมของเรา IOExceptions
ได้รับการตรวจสอบข้อยกเว้น ดังนั้นเราจึงควรจัดการกับพวกเขาโดยใช้คำหลัก "โยน" นี่คือรหัสที่เราจะใช้เพื่อจัดการกับข้อยกเว้น:
import java.io.*; class Main public static void getFile() throws IOException { throw new IOException("This file does not exist."); } public static void main(String[] args) { try { getFile(); } catch (IOException error) { System.out.println(e.getMessage()); } } }
รหัสของเราส่งคืน:
This file does not exist.
มาทำลายรหัสของเรากัน ขั้นแรก เรานำเข้า java.io
ห้องสมุดที่เราจะใช้ในโปรแกรมใด ๆ ที่จัดการไฟล์ จากนั้นเราสร้างคลาสที่เรียกว่า Main ซึ่งเก็บรหัสสำหรับโปรแกรมของเรา
ใน Main
. ของเรา คลาส เรากำหนดฟังก์ชันที่เรียกว่า getFile()
ซึ่งส่ง IOException
. ฟังก์ชันนี้จะโยน IOException พร้อมกับข้อความว่า "ไม่มีไฟล์นี้" สู่โปรแกรมของเรา
ในฟังก์ชันหลักในคลาสหลักของเรา เราสร้างบล็อก try/catch ที่พยายามเรียกใช้ getFile()
กระบวนการ. หากพบ IOException โค้ดภายในบล็อก catch จะทำงาน และข้อความจาก IOException จะถูกพิมพ์ไปยังคอนโซล ดังนั้นรหัสของเราจึงกลับมา "ไม่มีไฟล์นี้" ซึ่งเป็นข้อความที่เราประกาศไว้ก่อนหน้านี้
โยนข้อยกเว้นที่ไม่ได้ตรวจสอบ
สมมติว่าเราต้องการโยน StringIndexOutOfBounds
ข้อยกเว้นหากโปรแกรมของเราพยายามเข้าถึงค่าดัชนีในสตริงที่ไม่มีอยู่ เราสามารถทำได้โดยใช้รหัสนี้:
class Main { public static void outOfBounds() { throw new StringIndexOutOfBoundsException("This index value is invalid."); } public static void main(String[] args) { outOfBounds(); } }
มีหลายอย่างเกิดขึ้นในโค้ดของเรา เรามาทำลายมันกันเถอะ ขั้นแรก เราได้ประกาศคลาสที่เรียกว่า Main ซึ่งมีโค้ดของเราสำหรับโปรแกรมนี้อยู่
จากนั้นเราได้สร้างฟังก์ชันที่เรียกว่า outOfBounds()
ซึ่งเมื่อดำเนินการจะส่ง StringIndexOutOfBounds
ข้อยกเว้น ข้อความ This index value is invalid.
จะมาพร้อมกับข้อยกเว้น สุดท้าย ในโปรแกรมหลักของเรา เราเรียก outOfBounds()
ฟังก์ชันซึ่งจะส่งคืน:
ข้อยกเว้นในเธรด “main” java.lang.StringIndexOutOfBoundsException:ค่าดัชนีนี้ไม่ถูกต้อง
at Main.outOfBounds(Main.java:3)
at Main.main(Main.java:7)
ในตัวอย่างนี้ เราได้ส่งข้อยกเว้นที่ไม่ได้ตรวจสอบ โดยปกติไม่จำเป็น ดังที่เราได้กล่าวไว้ก่อนหน้านี้ แต่เราได้ส่งข้อยกเว้นที่ไม่ได้ตรวจสอบ เพื่อแสดงไวยากรณ์ให้คุณเห็น
บทสรุป
การจัดการข้อยกเว้นที่ตรวจสอบแล้วเป็นส่วนสำคัญในการเขียนโค้ดที่บำรุงรักษาได้ใน Java ใน Java คีย์เวิร์ด throw and throws ใช้เพื่อโยนและจัดการกับข้อยกเว้น
บทช่วยสอนนี้ครอบคลุมถึงวิธีใช้คีย์เวิร์ด throw และ throws ใน Java และให้ตัวอย่างที่เกี่ยวข้องเพื่อช่วยให้คุณเรียนรู้กระบวนการ หลังจากอ่านบทช่วยสอนนี้ คุณก็พร้อมที่จะเริ่มโยนและจัดการกับข้อยกเว้นใน Java อย่างมืออาชีพ!