gpt4 book ai didi

c# - 为什么 Exception 是一个类,而不是一个结构?

转载 作者:太空狗 更新时间:2023-10-30 01:30:45 26 4
gpt4 key购买 nike

  • 异常代表一条信息。
  • 根据定义,异常在应用程序生命周期中是(或应该是)很少发生的,所以我认为装箱、拆箱和复制不是问题。
  • 异常几乎总是超出其创建位置的范围,因此存在引用存储在某处的异常的风险,使其成为提升到下一代 GC 的良好候选者,而结构更容易清理。
  • 不可变结构是线程安全的。
  • 您绝不希望 Exception 为 null(即使是编译器或 CLR 强制这样做,请尝试执行以下操作):

    throw null;

    然后,你会得到:

    NullReferenceException

异常是类有什么具体原因吗?

最佳答案

最重要的两件事:

  • 结构不能被继承,所以你不能在你的异常中建立任何层次结构
  • 在 StackOverflowException 的情况下你不能在栈上分配内存,你需要一个堆

关于c# - 为什么 Exception 是一个类,而不是一个结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43409791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com