C#中的链接异常

链式异常是处理异常的try-catch语句链。创建异常链,即链接异常-

设置第一个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("第一个例外!", e);
   }
}

该方法Two()还继续链接异常。

示例

static void Two() {
   try {
      Three();
   } catch (Exception e) {
      throw new Exception("第二个例外!", e);
   }
}

现在下一个方法。

示例

static void Three() {
   try {
      Last();
   } catch (Exception e) {
      throw new Exception("第三例外!", e);
   }
}

将我们带到最后。

示例

static void Last() {
   throw new Exception("最后的例外!");
}

在运行上面的代码时,异常将像这样处理-

System.Exception: 第一个例外! ---< System.Exception: Middle Exception! ---< System.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