相同的 NullReferenceException 但消息不同。什么原因?

Same NullReferenceException but with different messages. what's the reason?

NullReferenceException: Object reference not set to an instance of an object

NullReferenceException: A null value was found where an object instance was required

我想知道是什么条件导致这两个不同的消息出现。

第一个是Exception from the Framework itself

第二种,是有人试图通过抛出自定义异常来避免第一种情况。但是我认为他有点搞砸了:通常你应该在这种情况下使用 ArgumentException,而不是 NullReference。正是因为它造成了这种混乱。

编辑:正如 Gabriel Luci 所指出的,这可能来自于使用 Unity3D。 Unity 花费数年时间针对平台独立开发的 Mono 框架进行开发(平台独立性仅针对 .NET 围绕 .NET Core 实现)。所以他们可能遵循了不同的 pattern/set 本地化字符串。

对于异常处理(捕获、抛出自己的异常和重新抛出),我有两个 Articles I link often。这些是我 "I think he messed up" 的基础。