ข้อยกเว้น เป็นสภาวะที่ผิดปกติระหว่างเวลาทำงานหรือเวลาคอมไพล์ เป็นแนวคิดที่สำคัญมากใน c ++ บทความนี้จะแนะนำคุณเกี่ยวกับการจัดการข้อยกเว้นใน C ++ พร้อมกับประเภทต่างๆ
คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้
มาเริ่มกันเลย
การจัดการข้อยกเว้นใน C ++
ประเภทของข้อยกเว้น
มีข้อยกเว้นสองประเภท
ข้อยกเว้นเวลาทำงาน
มันเป็นข้อยกเว้นที่ถูกจับระหว่างเวลาทำงาน
ข้อยกเว้นเวลาคอมไพล์
เป็นข้อยกเว้นที่ถูกจับระหว่างเวลาคอมไพล์
ดำเนินการต่อด้วยบทความการจัดการข้อยกเว้นใน C ++
java แตกออกจากวิธีการ
การจัดการข้อยกเว้นคืออะไร?
ข้อผิดพลาดขัดขวางการทำงานปกติของโปรแกรม การจัดการข้อยกเว้นเป็นสิ่งที่จำเป็นมากและเป็นกระบวนการจัดการข้อผิดพลาดหรือข้อยกเว้น ตรวจสอบให้แน่ใจว่าการดำเนินการของโปรแกรมไม่ได้รับผลกระทบจากข้อยกเว้นและจัดการอย่างช้าๆโดยไม่ก่อให้เกิดปัญหาใด ๆ กับการทำงานของโปรแกรม
เมื่อคุณพิจารณาการจัดการข้อยกเว้นมีสามคำที่เกี่ยวข้อง
ลอง
รหัสภายในบล็อกนี้เป็นเหมือนรหัสทดลองซึ่งอาจทำให้เกิดข้อยกเว้น ข้อยกเว้นนี้ติดอยู่ในบล็อกจับ
จับ
รหัสในบล็อกนี้จะดำเนินการเมื่อรหัสในบล็อกลองแสดงข้อยกเว้น
โยน
คีย์เวิร์ดนี้ใช้เพื่อแสดงข้อยกเว้นเมื่อพบ ข้อยกเว้นจะถูกส่งไปยังตัวจัดการข้อยกเว้น
ไวยากรณ์:
โค้ดภายในบล็อกลองถูกเรียกใช้งาน หากมีข้อผิดพลาดเกิดขึ้นคำหลัก Throw จะส่งข้อยกเว้นไปยังตัวจัดการข้อยกเว้นนั่นคือบล็อก catch จากนั้นบล็อก catch จะเรียกใช้โค้ดซึ่งอยู่ภายในบล็อกจึงจัดการกับข้อยกเว้น
ให้เราดูโค้ดตัวอย่างสำหรับการจัดการข้อยกเว้นใน c ++
ตัวอย่างรหัส
#include using namespace std try {// code for try throw & ldquoexception & rdquo} catch (except) {// code for catch} int main () {int x = 1 try {cout<< 'Try Block: '<เอาท์พุต:
คำอธิบาย
โปรแกรมนี้แสดงให้เห็นถึงการจัดการข้อยกเว้น เรามีตัวแปร x ซึ่งกำหนดค่าเป็น 1 จากนั้นเรามีจุดเริ่มต้นของบล็อกลอง ในบล็อกนี้เรามีคำสั่ง if พร้อมเงื่อนไข x<10.
ในกรณีของเราเงื่อนไขเป็นจริงเนื่องจาก x เป็นหนึ่ง จากนั้นโปรแกรมจะแสดงข้อยกเว้นและตัวควบคุมจะเลื่อนไปจับบล็อก เราดำเนินการตามเงื่อนไขในส่วนที่จับได้และออกจากบล็อก
จับ (... ) {ต้นทุน<< 'Default Exceptionn'<สุดท้ายเราดำเนินการคำสั่งที่เหลือหลังจากบล็อกจับและออกจากโปรแกรม
สามารถมีคำสั่ง catch ได้หลายแบบ ขึ้นอยู่กับจำนวนข้อยกเว้นที่เป็นไปได้
ดำเนินการต่อด้วยบทความการจัดการข้อยกเว้นใน C ++
จับบล็อกล้มเหลว
พิจารณาโปรแกรมก่อนหน้านี้หากแทน x คำหลัก throw จะพ่น“ ABC” ฟังก์ชัน catch จะไม่สามารถจัดการได้ มันจะแสดงข้อผิดพลาด
การใช้ลำดับความสำคัญคิวใน javaเราสามารถให้ข้อความแสดงข้อผิดพลาดที่ชนะของเราปรากฏขึ้นในกรณีดังกล่าว
ในการแก้ปัญหานี้เราต้องเพิ่มฟังก์ชัน catch เริ่มต้นให้กับโค้ดเพื่อจัดการปัญหาดังกล่าว
#include โดยใช้ namespace std int main () {int x = 1 try {cout<< 'Try Block: '<เอาท์พุท:
คำอธิบาย:
รหัสนี้คล้ายกับรหัสก่อนหน้า การเปลี่ยนแปลงเพียงอย่างเดียวคือข้อยกเว้นที่เกิดขึ้นเป็นประเภทถ่าน สิ่งนี้ส่งผลให้ฟังก์ชันการจับของเราไร้ประโยชน์ ดังนั้นเราจึงได้รวมฟังก์ชันการจับเริ่มต้น
หากไม่มีคำสั่ง catch ใดที่ตรงกันการจับเริ่มต้นจะถูกเรียกใช้งาน
การถดถอยโลจิสติกในตัวอย่าง pythonหลาย Catch Blocks
บล็อกการลองครั้งเดียวอาจมีหลายบล็อก
นี่คือตัวอย่าง
#include โดยใช้ namespace std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<เอาท์พุต:
คำอธิบาย:
ในโค้ดด้านบนเราใช้คำสั่ง catch หลาย ๆ เรามีการทดสอบฟังก์ชันซึ่งสร้างข้อยกเว้น ในกรณีทดสอบแรกค่าคือ 10 เนื่องจาก 10 มีค่ามากกว่าศูนย์ 'a' อักขระจะถูกโยนและถูกจับโดยฟังก์ชันการจับครั้งที่สอง
ในกรณีที่สองค่าจะน้อยกว่า 0 ดังนั้นค่า -1 จึงถูกโยนและถูกจับโดยข้อยกเว้นจำนวนเต็ม
การจัดการข้อยกเว้นในคลาสพื้นฐานและคลาสที่ได้รับ:
หากจับข้อยกเว้นของฐานและคลาสที่ได้รับมาจะต้องดำเนินการจับของคลาสที่ได้รับก่อนคลาสฐาน
นี่คือข้อยกเว้นบางประการ:
std :: ข้อยกเว้น
logic_error
การทำงานผิดพลาด
bad_alloc
bad_cast
bad_exception
ด้วยเหตุนี้เราจึงมาถึงจุดสิ้นสุดของบล็อกนี้ใน 'การจัดการข้อยกเว้นใน C ++' ฉันหวังว่าคุณจะพบข้อมูลนี้และเป็นประโยชน์โปรดติดตามบทช่วยสอนเพิ่มเติมในหัวข้อที่คล้ายกันนอกจากนี้คุณยังสามารถชำระเงินโปรแกรมการฝึกอบรมของเราได้o รับความรู้เชิงลึกเกี่ยวกับ jQuery พร้อมกับแอพพลิเคชั่นต่างๆที่คุณทำได้ สำหรับการฝึกอบรมออนไลน์สดพร้อมการสนับสนุนตลอด 24 ชั่วโมงทุกวันและการเข้าถึงตลอดชีวิต
มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นของบล็อกนี้แล้วเราจะติดต่อกลับไป