C#WinForms异常:类型'System.AccessViolationException'的第一次机会异常

时间:2011-05-09 04:39:16

标签: c# .net exception access-violation

我有一个基本的WinForms应用程序。我正在调用外部API,这会产生以下异常:

Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

A first chance exception of type 'System.AccessViolationException' occurred in UavController.exe

电话看起来像这样:

outputBroker.SelectedObjectPaths.AddWithID(((AgAircraft)aircraft).Path, ((AgAircraft)aircraft).InstanceName);

我找不到任何问题的迹象。

3 个答案:

答案 0 :(得分:2)

问题是您的API生成的问题。您是通过调用将错误数据传递给API,或者您的API本身存在问题。如果您有权访问API代码,可以使用以下Microsoft链接:

http://msdn.microsoft.com/en-us/library/ms164911(v=vs.80).aspx

否则,我认为您可能需要与您的API提供商合作,找出问题所在以及解决方法。

答案 1 :(得分:0)

第一次机会异常并不总是一个错误。第一次机会异常是您正在调试的代码第一次抛出异常。如果您的代码处理异常,那么所有这些操作都会通知您发生了异常。

例如,我可能有代码尝试查找具有特定名称的文件,如果找到,则执行某些操作。如果文件名不存在,则抛出异常,我处理并执行其他操作。因此,虽然发生了异常,但它是预期的行为并由代码处理。

如果您有二次机会异常通知,这意味着您的代码实际上并不处理抛出的异常。那时,你想看看发生了什么。您是否只是为了获取更高级别的代码而再次抛出异常,或者您是否完全忽略它。

答案 2 :(得分:-1)

将它放在构造函数中作为第一行... 关闭修复它:)

InitializeComponent();