ความแตกต่างระหว่างข้อผิดพลาดและข้อยกเว้น (พร้อมตาราง)

สารบัญ:

Anonim

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

ข้อผิดพลาดกับข้อยกเว้น

ความแตกต่างระหว่าง Error และ Exception คือ ข้อผิดพลาดแบบเดิมส่งสัญญาณถึงข้อผิดพลาดประเภทอื่น ข้อผิดพลาดนี้มักเกิดขึ้นเนื่องจากการขาดแคลนทรัพยากรระบบ ดังนั้นระบบอาจไม่สังเกตเห็นปัญหาประเภทนี้ ในทางกลับกัน ข้อยกเว้นคือปัญหาที่อาจเกิดขึ้นทั้งในการประหารชีวิตและเวลาในการรวบรวม มักพบในโค้ดที่เขียนโดยนักพัฒนา แบบแรกจัดเป็นข้อยกเว้นที่ไม่ได้ตรวจสอบ ในขณะที่แบบหลังจัดประเภทเป็นประเภทที่ตรวจสอบแล้วและไม่ตรวจสอบ

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

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

ตารางเปรียบเทียบระหว่างข้อผิดพลาดและข้อยกเว้น

พารามิเตอร์ของการเปรียบเทียบ

ข้อผิดพลาด

ข้อยกเว้น

พิมพ์ เป็นข้อยกเว้นที่จัดประเภทไว้ แต่มันมาในหมวดที่ไม่ได้เลือก มันถูกจัดประเภทเป็นตรวจสอบเช่นเดียวกับประเภทที่ไม่ได้ตรวจสอบ
บรรจุุภัณฑ์ Java.lang.error เป็นแพ็คเกจที่มีคลาสข้อผิดพลาด Java.lang.exception เป็นแพ็คเกจที่มีคลาสข้อยกเว้น
การกู้คืน ไม่สามารถกู้คืนได้ดังนั้นจึงไม่สามารถกู้คืนได้ นี่เป็นข้อเสียของการเกิดข้อผิดพลาด สามารถกู้คืนและจัดการได้ ดังนั้นจึงสามารถกู้คืนได้ ดังนั้นสถานการณ์เหล่านี้สามารถแก้ไขได้
อุบัติเหต ไม่สามารถเกิดขึ้นได้ในช่วงเวลาของการรวบรวม ซึ่งแตกต่างจากข้อยกเว้น มันเกิดขึ้นทั้งระหว่างรันไทม์และเวลาคอมไพล์ ไม่เหมือนข้อผิดพลาด
ตัวอย่าง ตัวอย่างกรณีนี้คือ OutOfMemoryError, IOError ตัวอย่างบางส่วนของสิ่งนี้คือ NullPointerException, SqlException

ผิดพลาดคืออะไร?

ข้อผิดพลาดสามารถกำหนดได้ว่าเป็นปัญหาใดๆ ที่เกิดขึ้นโดยไม่คาดคิดและทำให้คอมพิวเตอร์ทำงานผิดปกติ มีข้อผิดพลาดหลายประเภท ข้อผิดพลาดแต่ละข้อเหล่านี้มาพร้อมกับรูปแบบต่างๆ นับร้อย

ความผิดปกติของคอมพิวเตอร์ที่พบบ่อยที่สุดคือข้อผิดพลาดของซอฟต์แวร์ ซึ่งมักได้รับการแก้ไขด้วยการอัปเดตซอฟต์แวร์หรือโปรแกรมแก้ไข

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

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

โดยหลักแล้วจะจัดเป็นข้อยกเว้นที่ไม่ได้ตรวจสอบ Java.lang.error เป็นแพ็คเกจที่มีคลาสข้อผิดพลาด หนึ่งไม่สามารถกู้คืนได้ มันเลยเอาคืนไม่ได้ เหตุผลนี้เป็นข้อเสียของการเกิดข้อผิดพลาด

ข้อยกเว้นคืออะไร?

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

ข้อยกเว้นคือคลาสใน Java ที่เรียกว่า java.lang

คลาสย่อยพื้นฐานสองคลาสของ Exception คือ IOException และ RuntimeException เมื่อคอมพิวเตอร์รวบรวมโปรแกรม ข้อยกเว้นที่ตรวจสอบแล้วจะเกิดขึ้น ส่วนใหญ่โปรแกรมควรจะสามารถชดใช้จากพวกเขา ซึ่งรวมถึงข้อยกเว้น เช่น FileNotFoundException และ InvalidInputException เพื่อแก้ไขปัญหานี้ สามารถสร้างโค้ดจัดการข้อยกเว้นได้ ซึ่งช่วยให้โปรแกรมสามารถดำเนินการต่อได้

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

ไม่สามารถกู้คืนข้อผิดพลาดได้ ดังนั้นจึงไม่สามารถกู้คืนได้ เหตุผลนี้เป็นข้อเสียของการเกิดข้อผิดพลาด ดังนั้น สถานการณ์เหล่านี้สามารถแก้ไขได้ มันเกิดขึ้นทั้งระหว่างรันไทม์และคอมไพล์ไทม์ ซึ่งแตกต่างจากข้อผิดพลาด ตัวอย่างบางส่วนของสิ่งนี้คือ NullPointerException, SqlException

ความแตกต่างหลักระหว่างข้อผิดพลาดและข้อยกเว้น

บทสรุป

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

ข้อผิดพลาดส่งสัญญาณถึงความผิดปกติที่มักเกิดขึ้นเนื่องจากการขาดแคลนทรัพยากรระบบ ข้อผิดพลาดถูกจัดประเภทเป็นข้อยกเว้นที่ไม่ได้ตรวจสอบ ในขณะที่ข้อยกเว้นถูกจัดประเภทเป็นตรวจสอบและประเภทที่ไม่ได้ตรวจสอบ

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

ดังนั้น เราต้องพิจารณาความแตกต่างทั้งหมดระหว่างคำสองคำนี้ และไม่ใช้แทนกัน

อ้างอิง

ความแตกต่างระหว่างข้อผิดพลาดและข้อยกเว้น (พร้อมตาราง)