C ++เกมส์

C++ HOME บทนำ C++ C++ เริ่มต้นใช้งาน ไวยากรณ์ C++ เอาต์พุต C++ ความคิดเห็น C++ ตัวแปร C++ อินพุตผู้ใช้ C++ ประเภทข้อมูล C++ ตัวดำเนินการ C++ สตริง C++ C++ คณิตศาสตร์ C++ บูลีน เงื่อนไข C++ สวิตช์ C++ C ++ ในขณะที่วนรอบ C ++ สำหรับลูป C++ พัก/ดำเนินการต่อ อาร์เรย์ C++ การอ้างอิง C++ ตัวชี้ C++

ฟังก์ชัน C++

ฟังก์ชัน C++ พารามิเตอร์ฟังก์ชัน C++ ฟังก์ชัน C++ โอเวอร์โหลด

คลาส C++

C++ OOP C++ คลาส/วัตถุ วิธีการคลาส C ++ ตัวสร้าง C++ ตัวระบุการเข้าถึง C++ การห่อหุ้ม C++ มรดก C++ C++ Polymorphism ไฟล์ C++ ข้อยกเว้น C++

C++ วิธีการ

เพิ่มสองตัวเลข

ตัวอย่างภาษา C++

ตัวอย่างภาษา C++ คอมไพเลอร์ C++ แบบฝึกหัด C++ แบบทดสอบ C++


ข้อยกเว้น C++


ข้อยกเว้น C++

เมื่อรันโค้ด C++ ข้อผิดพลาดต่างๆ อาจเกิดขึ้นได้: ข้อผิดพลาดในการเขียนโปรแกรมโดยโปรแกรมเมอร์ ข้อผิดพลาดเนื่องจากการป้อนข้อมูลที่ไม่ถูกต้อง หรือสิ่งที่ไม่คาดคิดอื่นๆ

เมื่อเกิดข้อผิดพลาด โดยปกติ C++ จะหยุดและสร้างข้อความแสดงข้อผิดพลาด ศัพท์เทคนิคสำหรับสิ่งนี้คือ: C ++ จะส่งข้อยกเว้น (โยนข้อผิดพลาด)


C ++ ลองและจับ

การจัดการข้อยกเว้นใน C++ ประกอบด้วยคำหลักสามคำ: try, throwและcatch:

คำtryสั่งอนุญาตให้คุณกำหนดกลุ่มของรหัสที่จะทดสอบหาข้อผิดพลาดในขณะที่กำลังดำเนินการ

คีย์เวิร์ดส่ง ข้อthrowยกเว้นเมื่อตรวจพบปัญหา ซึ่งช่วยให้เราสร้างข้อผิดพลาดที่กำหนดเองได้

คำcatchสั่งนี้อนุญาตให้คุณกำหนดกลุ่มของรหัสที่จะดำเนินการ หากเกิดข้อผิดพลาดในบล็อกการลอง

tryและคำcatchหลักมาเป็นคู่:

ตัวอย่าง

try {
  // Block of code to try
  throw exception; // Throw an exception when a problem arise
}
catch () {
  // Block of code to handle errors
}

พิจารณาตัวอย่างต่อไปนี้:

ตัวอย่าง

try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw (age);
  }
}
catch (int myNum) {
  cout << "Access denied - You must be at least 18 years old.\n";
  cout << "Age is: " << myNum;
}

ตัวอย่างอธิบาย

เราใช้tryบล็อกเพื่อทดสอบโค้ด: หากageตัวแปรมีค่าน้อยกว่า18เราจะthrowยกเว้น และจัดการกับมันในcatchบล็อก ของเรา

ในcatchบล็อกนี้ เราตรวจพบข้อผิดพลาดและดำเนินการบางอย่างกับมัน คำcatch สั่งใช้พารามิเตอร์ : ในตัวอย่างของเราเราใช้intตัวแปร ( myNum) (เพราะเรากำลังส่งข้อยกเว้นintประเภทในtryบล็อก ( age)) เพื่อส่งออกค่าageของ

หากไม่มีข้อผิดพลาดเกิดขึ้น (เช่น if ageis 20แทนที่15หมายความว่าจะมากกว่า 18) catchบล็อกจะถูกข้ามไป:

ตัวอย่าง

int age = 20;

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

ตัวอย่าง

try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw 505;
  }
}
catch (int myNum) {
  cout << "Access denied - You must be at least 18 years old.\n";
  cout << "Error number: " << myNum;
}

จัดการกับข้อยกเว้นทุกประเภท (...)

หากคุณไม่ทราบthrow ประเภท ที่ ใช้ในtryบล็อก คุณสามารถใช้ไวยากรณ์ "สามจุด" ( ...) ภายในcatchบล็อก ซึ่งจะจัดการกับข้อยกเว้นประเภทใดก็ได้:

ตัวอย่าง

try {
  int age = 15;
  if (age >= 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw 505;
  }
}
catch (...) {
  cout << "Access denied - You must be at least 18 years old.\n";
}