Chained Exceptions เป็นลูกโซ่ของคำสั่ง try-catch ที่จัดการกับข้อยกเว้น เพื่อสร้างห่วงโซ่ของข้อยกเว้นเช่นข้อยกเว้นที่ถูกล่ามโซ่ -
ตั้งค่าการลองจับครั้งแรก −
ตัวอย่าง
static void Main(string[] args) {
try {
One();
} catch (Exception e) {
Console.WriteLine(e);
}
} ตอนนี้ลองจับภายใต้วิธี One() -
ตัวอย่าง
static void One() {
try {
Two();
} catch (Exception e) {
throw new Exception("First exception!", e);
}
} วิธี Two() ยังคงมีข้อยกเว้นแบบ chained ต่อไป
ตัวอย่าง
static void Two() {
try {
Three();
} catch (Exception e) {
throw new Exception("Second Exception!", e);
}
} วิธีการต่อไป
ตัวอย่าง
static void Three() {
try {
Last();
} catch (Exception e) {
throw new Exception("Third Exception!", e);
}
} ที่พาเราไปที่สุดท้าย
ตัวอย่าง
static void Last() {
throw new Exception("Last exception!");
} ในการเรียกใช้ข้างต้น ข้อยกเว้นจะได้รับการจัดการเช่นนี้ -
System.Exception: First exception! ---< System.Exception: Middle Exception! ---< System.Exception: Last exception! at Demo.Two () [0x00000] in <199744cb72714131b4f5995ddd1a021f>:0 --- End of inner exception stack trace --- at Demo.Two () [0x00016] in <199744cb72714131b4f5995ddd1a021f>:0 at Demo.One () [0x00000] in <199744cb72714131b4f5995ddd1a021f>:0 --- End of inner exception stack trace --- at Demo.One () [0x00016] in <199744cb72714131b4f5995ddd1a021f>:0 at Demo.Main (System.String[] args) [0x00000] in <199744cb72714131b4f5995ddd1a021f>:0