Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ข้อยกเว้นที่ถูกล่ามโซ่ใน C #


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