gpt4 book ai didi

.net - 为什么我应该始终将异常设置为[可序列化]? (。网)

转载 作者:行者123 更新时间:2023-12-03 07:19:12 25 4
gpt4 key购买 nike

引用What is the correct way to make a custom .NET Exception serializable?
Are all .NET Exceptions serializable? ...

为什么我的异常应该是可序列化的?
有人说,如果第三方库定义的自定义异常不可序列化,“可以将其视为错误”。为什么?

为什么异常在这方面与其他类不同?

最佳答案

因为您的异常可能需要在不同的 AppDomain 之间进行编码,如果它们不能(正确)序列化,您将丢失宝贵的调试信息。与其他类不同,您无法控制您的异常是否会被编码——它会。

<小时/>

当我的意思是“你无法控制”时,我的意思是你创建的类通常具有有限的存在空间,并且其存在是众所周知的。如果它是一个返回值,并且有人试图在不同的 AppDomain(或不同的机器上)中调用它,他们会得到一个错误,并且只能说“不要那样使用它”。调用者知道他们必须将其转换为可以序列化的类型(通过包装方法调用)。然而,由于异常会冒泡到最顶层,如果没有被捕获,它们可能会超越 AppDomain 边界,您甚至不知道自己有这样的边界。您在不同 AppDomain 中深度 20 层的自定义应用程序异常可能是在 Main() 处报告的异常,并且整个过程中不会将其转换为可序列化的异常。

关于.net - 为什么我应该始终将异常设置为[可序列化]? (。网),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1066701/

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