我想优雅地处理带有特定消息的特定异常。不幸的是,它只是一个 ArgumentException,并不特定于我要查找的内容。在这种情况下,消息是“已添加具有相同键的项目”。这是一个异常(exception)情况,但我想处理它,以便我可以将它变成一个特定的异常(exception)或用非技术术语通知用户。
编写代码来查找该消息似乎是个坏主意,但我还能做什么?
最佳答案
您是添加该项目的人吗?如果是这样,首先编写代码来避免它发生。
处理 ArgumentException
应该是非常罕见的,并且难以置信根据消息处理它。基本上,只有当你力所能及的一切都失败时,你才应该被迫这样做,例如它是导致异常的第三方库。 (在这种情况下,您应该联系第三方,让他们也提出自己的想法。)
编辑:调用 ToLookup
而不是调用 ToDictionary
。然后,您可以检查是否有任何包含多个条目的结果。
或者,编写您自己的 ToDictionary
版本,根据您的情况以正确的方式处理此问题 - 这非常简单。
关于.net - 根据消息捕获异常是否合理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883648/