问题标签 [keynotfoundexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1139 浏览

c# - Useless Exceptions (NullReferenceException, KeyNotFoundException)

I find the C# exceptions very annoying, because they provide so less information. What is the reason for this?

NullReferenceException or KeyNotFoundExceptions are hard to debug and sometimes you don´t get a linenumber in the stacktrace. Why can the exception itself not provide more informations?

For example:

When "Properties"is null I get a NullReferenceException:

"System.NullReferenceException: Object reference not set to an instance to an object"

Why I do not get:

"System.NullReferenceException: Object reference 'Properties' not set to an instance to an object"

This would be more usefull and the CLR does know, which reference is null.

The same when I pass a non existent key e.g. Process("dummy"):

"System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary"

Why I do not get:

"System.Collections.Generic.KeyNotFoundException: The key 'dummy' was not present in the dictionary"

The CLR knows, which key was passed and not found.

I try to debug such errors (which illegal keys are passed) in an productive environment and made the code more robust like:

But why I have to do this, normally the CLR could tell me what was going wrong in detail. I cannot wrap all codepieces like this to get more informations when an exception happens.

0 投票
1 回答
124 浏览

c# - 调用具有两个相同参数的方法会返回两个不同的结果

我有一个简单的项目,使用 MVC 模式、ET 和 WCF。它使用 Dijkstra 来寻找城市之间的路径。这就是类本身。

但是,当调用对象FindPathFromCityToCity()中的两个相同列表时map,相同fromto,当它在普通控制台应用程序上时,它会返回所需的结果。但是,当从 WCF 中使用时,它会在第 39 行失败并出现异常System.Collections.Generic.KeyNotFoundException

为了检查我的输入是否不正确,我添加了写入 txt 文件(第 17 到 27 行),这就是结果(TL;DR - 两者完全相同):

安慰:

周转基金:

有人能看出发生这种情况的任何原因吗?


编辑:

我做了进一步的测试,用这个片段打印了所有可能的对象,并且对象没有区别(当然哈希除外):

0 投票
3 回答
1268 浏览

c# - 我应该为数据库查找抛出 KeyNotFoundException 吗?

我有一些代码,给定一个 ID,从数据库中返回一个项目。如果没有项目与给定的 ID 匹配,是否适合抛出 a KeyNotFoundException,或者此类异常仅适用于 Dictionary 类型?

0 投票
1 回答
656 浏览

ios - Xamarin Studio 使用错误的命名空间创建文件

我目前正在使用 Xamarin Studio,并且正在使用 MvvmCross 框架开发应用程序。

我的问题是,当我尝试在名为“Views”的文件夹中创建一个新文件时,命名空间不包含“.Views”。

我有 Xamarin.Client.iOS 而不是 Xamarin.Client.iOS.Views。所以 MvvmCross 框架没有找到我的观点并返回一个KeyNotFoundException : could not find view for [MyViewModel]

我想知道 XCode 是否修改了我的命名空间,因为我的应用程序运行良好,现在它找不到视图。

我想这是一个命名空间问题,但不太确定。事实是我的“视图”文件不在“.Views”命名空间中,而它们位于“视图”文件夹中。

如何使用良好的命名空间创建我的视图?因为在 .cs 和 .designer.cs 文件中更改它并不能修复 KeyNotFoundException...

如果你有任何想法...

0 投票
1 回答
416 浏览

c# - workitem.open() KeyNotFoundException TFS 2013

我遇到了这个异常“字典中不存在给定的键”,这表明字典中没有找到某些值,但奇怪的是我没有使用任何字典,我猜这是一些内部代码C# 的 TFS API。这是引发异常的代码部分:

这段代码是循环的一部分,我在其中获取工作项,使用 TFS API 执行一些更新,之后,我使用方法SubmitChangesToDatabase直接在数据库上更改只读字段。调用方法Open()时引发异常。堆栈跟踪如下:

0 投票
1 回答
373 浏览

c# - 即使存在密钥,Dictionary.GetKey 仍返回 False - GetHashCode/Equals 已被覆盖

这是在 C# 中。我有一个问题,即 Dictionary.ContainsKey 返回 false,即使我知道密钥在其中。

不幸的是,我没有任何代码可以显示。代码不容易拉到一起;它分布在多个类中,并通过事件等触发。我写的一个快速单元测试没有重现这个问题。

这是调试会话期间即时窗口的输出(添加注释并更改以保护细节):

一些额外的说明:

  • 用作键的类型具有覆盖 GetHashCode 和 Equals 的方法。
  • 字典被构造为 new Dictionary() ,没有额外的构造函数参数。
  • 通过调试,我已经验证了键类型中的 GetHashCode 被调用,而不是 Equals(obj)
  • 当应用程序运行时,只加载了一个具有密钥类型的 DLL,因此在同一个 DLL 的不同版本中可能不是相同类型的情况

有谁知道为什么会发生这种情况?

感谢您的帮助-我的想法已经不多了。

0 投票
0 回答
226 浏览

c# - c# 当 AfterLabelEdit 事件触发时,ListViewItem 卡在编辑模式

正如标题所说,当 AfterLabelEdit 触发时,即使我按回车键或单击空白区域,ListViewItem 也会卡在编辑模式。

错误:

mscorlib.dll 中出现了“System.Collections.Generic.KeyNotFoundException”类型的第一次机会异常

这是代码的样子:

我很确定键和值不为空。有任何想法吗?请问是否还有什么不清楚的地方。

0 投票
1 回答
268 浏览

c# - 字典中存在键时出现 KeyNotFound 异常?

我有一个非常详细的字典,它存储 350 个键,每个键都是 3 个字节的字节数组。该字典用于解释来自自制硬件的传入数据。

在对应用程序进行压力测试时,我遇到了一个奇怪的错误,它告诉我有一个KeyNotFoundException. 奇怪的是字典里有钥匙,而我正盯着它看。字典使用了一个特殊的比较器,这可能是问题的原因:

这只发生在我模拟用户以疯狂的速度按下按钮时,这意味着字典被多次查询键。

为什么会这样?比较器有问题吗?

编辑

为了清楚起见,控制器异步运行(因为它需要能够处理来自多个不同来源的传入数据)。我不想发布控制器的所有源代码,因为有很多,其中一些是敏感的,但我将发布这两个处理控件初始化的方法和它侦听传入数据的方法:

0 投票
0 回答
97 浏览

arrays - 来自 String() 的 VB.NET KeyNotFoundException

我正在更新一些旧代码以使用 SortedList(Of String, Integer) 对象,而最低级别的函数突然开始抛出错误。当我开始枚举解析的行时,会引发“KeyNotFoundException”错误。代码如下:

我看到的有关此错误的所有线程都与 Dictionary 对象有关。我最接近的是“工具”SortedList 对象,但异常是在字符串数组上引发的。那么,如果您可以通过枚举“单词”来解释为什么会发生异常,那么可能导致此异常和加分的原因是什么。提前致谢!

0 投票
1 回答
442 浏览

c# - 带有字符串键的字典中的 KeyNotFoundException

我无法用字符串键获得价值

变量_code027410

在观察窗口:

stockShcodeDic[_code] System.Collections.Generic.KeyNotFoundException <= 错误 stockShcodeDic["027410"] {Base.Data} Base.Data <= OK