gpt4 book ai didi

c# - 区分相同类型的异常

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

区分相同类型但因不同原因抛出的两个异常的最佳方法是什么。

例如 InvalidOperationException可以在尝试访问空序列时抛出,但也可以在使用 Concurrent 对象时抛出(例如 BlockingCollection )

从我的阅读中我得出的结论是使用 BlockingCollection.CompleteAdding()发出完成信号完全没问题,因此需要捕获异常并进行适当处理(例如退出任务)

在不使用消息内容的情况下过滤这些的最佳方法是什么?

编辑:它们似乎都具有相同的 HResult 值。

最佳答案

AFAIK 您可以区分两个 Exception s 相同 Type 仅由 Message .

然而 ,你应该不是 依赖 Message使 Catch决定。 Message可能是 localized取决于您正在执行代码的系统的语言环境配置。这将使您的 Catch When如果系统语言与 Message 的语言不同,则块不相关你硬编码。

您可以使用 Message 的唯一情况是当您是系统管理员并为您将管理的服务器编写软件时,并且您确定您使用的语言将来不会改变(当您编写软件以在客户端设备上运行时无法保证) )。

关于c# - 区分相同类型的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34281230/

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