gpt4 book ai didi

C# - 为什么要实现标准异常构造函数?

转载 作者:IT王子 更新时间:2023-10-29 04:06:35 30 4
gpt4 key购买 nike

来自MSDN,代码分析警告CA1032:

Exception types must implement the following constructors: 
  
  • public NewException()
  • public NewException(string)
  • public NewException(string, Exception)
  • protected or private NewException(SerializationInfo, StreamingContext)
我了解序列化构造函数背后的目的,但“要求”其他构造函数背后的基本原理是什么?为什么我不应该只定义任何对我的异常的使用有意义的构造函数?如果我不想在不传递消息的情况下抛出 MyException 怎么办——我为什么要定义一个无参数的构造函数?如果我希望 MyException 具有一个 int 属性并且我只想要初始化该属性的构造函数怎么办?

最佳答案

这是警告,不是要求。基本上是principle of least surprise .提供所有 4 个可以使习惯于“常规”C# 异常的人更容易使用您的异常。如果您有充分的理由忽略该准则,请这样做。但它会破坏某些使用场景,并使您的类不那么直观。

关于C# - 为什么要实现标准异常构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/931533/

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