โยนคำสำคัญเข้ามา Java

⚡ สรุปอย่างชาญฉลาด

โยนคำสำคัญเข้ามา Java ใช้ในการประกาศเมธอดเพื่อแจ้งให้ทราบถึงข้อยกเว้นที่ตรวจสอบได้ซึ่งเมธอดนั้นอาจยกขึ้นระหว่างการทำงาน โดยจะมอบหมายการจัดการข้อยกเว้นให้กับเมธอดที่เรียกใช้แทนที่จะบังคับให้มีบล็อก try-catch อยู่ภายใน

  • 📢 นิยามของการขว้าง: ประกาศข้อยกเว้นที่เมธอดอาจก่อให้เกิด เพื่อให้ผู้เรียกใช้สามารถจัดการกับข้อยกเว้นเหล่านั้นได้
  • 🧱 ไวยากรณ์: วางไว้หลังลายเซ็นของเมธอด เช่น method(args) throws Exception1, Exception2
  • 🔁 สองตัวเลือก: จัดการกับข้อยกเว้นด้วย try-catch หรือประกาศข้อยกเว้นด้วย throws
  • 🇧🇷 การขว้าง vs การขว้าง: throw จะยกเว้นอ็อบเจ็กต์ข้อยกเว้นเพียงรายการเดียว ในขณะที่ throws จะระบุรายการข้อยกเว้นหนึ่งรายการขึ้นไปในลายเซ็น
  • ⚠️ กฎของคอมไพเลอร์: ข้อยกเว้นที่ตรวจสอบได้จะต้องถูกดักจับหรือประกาศ มิฉะนั้นการคอมไพล์จะล้มเหลว

โยนคำสำคัญเข้ามา Java

Java พ่นคำสำคัญ

การขอ Java พ่นคำสำคัญ ใช้เพื่อประกาศข้อมูลข้อยกเว้นที่อาจเกิดขึ้นระหว่างการทำงานของโปรแกรม มันให้ข้อมูลเกี่ยวกับข้อยกเว้นแก่โปรแกรมเมอร์ เป็นการดีกว่าที่จะจัดเตรียมโค้ดการจัดการข้อยกเว้นเพื่อให้สามารถรักษาโฟลว์การทำงานของโปรแกรมตามปกติได้

Java โยนไวยากรณ์ข้อยกเว้น

สมมติว่าในโปรแกรม Java ของคุณ คุณใช้เมธอดไลบรารีที่ส่งข้อยกเว้น


Java พ่นคำสำคัญ

ในโปรแกรมของคุณ คุณจะจัดการกับข้อยกเว้นนี้โดยใช้ try & catch

import java.io.*;
class file1{
  public static void main(String[] args) {
     try{
           FileWriter file = new FileWriter("c:\\Data1.txt");
           file.write("Guru99");
           file.close();
    }
    catch(IOException){}
  }
}

หากคุณไม่จัดการกับข้อยกเว้นในบล็อก try และ catch การคอมไพล์จะล้มเหลว แต่เกือบทุกเมธอดในไลบรารี Java หรือแม้แต่เมธอดที่ผู้ใช้กำหนดเองก็อาจโยนข้อยกเว้นได้ การจัดการกับข้อยกเว้นทั้งหมดโดยใช้บล็อก try และ catch อาจยุ่งยากและจะขัดขวางประสิทธิภาพการทำงานของโปรแกรมเมอร์

ดังนั้น java จึงมีตัวเลือกให้ โดยที่เมื่อใดก็ตามที่คุณใช้โค้ดที่มีความเสี่ยงในคำจำกัดความของเมธอด คุณจะประกาศมัน พ่น ข้อยกเว้นโดยไม่ใช้ try catch

Java โยนไวยากรณ์ข้อยกเว้น

method (Arguments) throws Exception1,Exception2,Exception,… {}

โยนคำสำคัญเข้ามา Java ตัวอย่าง

ลองพิจารณาตัวอย่างเดียวกันกับข้างบนด้วยการพ่นในการประกาศเมธอด

import java.io.*;
class file1{
    public static void main(String[] args) throws IOException{
      FileWriter file = new FileWriter("c:\\Data1.txt");
      file.write("Guru99");
      file.close();
    }
}

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

  1. ใส่รหัสที่ทำให้เกิดข้อยกเว้นใน try และ catch block
  2. ประกาศวิธีการที่จะโยนข้อยกเว้น

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

ความแตกต่างระหว่างการขว้างและการขว้างคืออะไร?

โยน พ่น
มันถูกใช้เพื่อสร้างวัตถุข้อยกเว้นใหม่และโยนมัน มันถูกใช้ในการกำหนดวิธีการ เพื่อประกาศว่ามีการเรียกวิธีการที่มีความเสี่ยง
การใช้คีย์เวิร์ด Throw คุณสามารถประกาศข้อยกเว้นได้ครั้งละหนึ่งรายการเท่านั้น การใช้คีย์เวิร์ด Throws คุณสามารถประกาศข้อยกเว้นได้หลายรายการในแต่ละครั้ง
ตัวอย่าง: โยน IOException ใหม่ (“ไม่สามารถเปิดการเชื่อมต่อ”); ตัวอย่าง: พ่น IOException, ArrayIndexBoundException;

คำถามที่พบบ่อย

คำว่า `throw` ใช้สำหรับสร้างอ็อบเจ็กต์ข้อยกเว้นเพียงหนึ่งเดียวภายในตัวเมธอด ในขณะที่คำว่า `throws` ปรากฏในลายเซ็นของเมธอดเพื่อประกาศข้อยกเว้นหนึ่งรายการหรือมากกว่านั้นที่เมธอดอาจส่งต่อไปยังผู้เรียกใช้

ใช่แล้ว ข้อความ `throws` เพียงข้อความเดียวสามารถระบุข้อยกเว้นได้หลายรายการ โดยคั่นด้วยเครื่องหมายจุลภาค เช่น `throws IOException, SQLException` จากนั้นเมธอดที่เรียกใช้จะต้องจัดการหรือประกาศข้อยกเว้นแต่ละรายการเพิ่มเติม

ไม่จำเป็นครับ ข้อยกเว้นที่ไม่ได้ตรวจสอบ (คลาสย่อยของ RuntimeException) ไม่จำเป็นต้องประกาศด้วยคำสั่ง throw คอมไพเลอร์จะบังคับให้ประกาศหรือจัดการเฉพาะข้อยกเว้นที่ตรวจสอบได้ เช่น IOException เท่านั้น

AI สามารถแนะนำบล็อก try-catch ที่เหมาะสม แนะนำว่าจะดักจับหรือประกาศข้อยกเว้น สร้างข้อความแสดงข้อผิดพลาดที่มีความหมาย และตรวจจับข้อยกเว้นที่ถูกกลืนหายไปได้ping นักพัฒนาสามารถเขียนโค้ดจัดการข้อผิดพลาดได้อย่างปลอดภัยและบำรุงรักษาง่ายยิ่งขึ้น

ใช่แล้ว AI สามารถวิเคราะห์เนื้อหาของเมธอด ระบุการทำงานที่มีความเสี่ยง เช่น การเข้าถึงไฟล์หรือเครือข่าย และแนะนำข้อยกเว้นที่ต้องตรวจสอบเพื่อประกาศในส่วน throws ซึ่งจะช่วยลดการประกาศที่ไม่ครบถ้วนและข้อผิดพลาดในการคอมไพล์ได้

สรุปโพสต์นี้ด้วย: