บล็อก try ใช้ระบุช่วงโค้ดที่อาจเกิดข้อยกเว้น (Exception) และจะต้องตามด้วยบล็อก catch หนึ่งบล็อกขึ้นไปเพื่อจัดการข้อยกเว้นที่เกิดขึ้น
รูปแบบพื้นฐาน
try {
// โค้ดที่อาจเกิดข้อยกเว้น
} catch (ExceptionType e) {
// โค้ดจัดการข้อยกเว้น
}
ตัวอย่างการใช้งาน
ตัวอย่างต่อไปนี้แสดงการจัดการ DivideByZeroException เมื่อหารด้วยศูนย์:
using System;
class Demo {
int result;
Demo() {
result = 0;
}
public void Division(int val1, int val2) {
try {
result = val1 / val2;
} catch (DivideByZeroException e) {
Console.WriteLine("ข้อยกเว้นที่จับได้: {0}", e);
} finally {
Console.WriteLine("ผลลัพธ์: {0}", result);
}
}
static void Main(string[] args) {
Demo d = new Demo();
d.Division(100, 0);
Console.ReadKey();
}
}
ผลลัพธ์
ข้อยกเว้นที่จับได้: System.DivideByZeroException: Attempted to divide by zero.
at Program.Demo.division (System.Int32 val1, System.Int32 val2) [0x00000] in <0d240b2120114744a121b66d65545f3f>:0
ผลลัพธ์: 0
จุดสำคัญ
- try: กำหนดขอบเขตโค้ดที่ต้องตรวจสอบข้อยกเว้น
- catch: จับและจัดการข้อยกเว้นเฉพาะประเภทที่ระบุ
- finally: (ตัวเลือก) ทำงานเสมอไม่ว่าจะมีข้อยกเว้นหรือไม่ กรณีตัวอย่างจะแสดงผลลัพธ์เสมอ
- สามารถมี
catchหลายบล็อกสำหรับประเภทข้อยกเว้นต่างกันได้