In Visual Studio 2010, when the debugger is told to stop at all exceptions, it does it regardless of whether the exception is handled or not. For example, if you write such a code:
try
{
throw new Exception("test");
}
catch
{
}
the debugger stops at the line which throws exception, even if it's caught and handled. Note that this also happens if an exception is thrown inside the codes which don't belong to our own. We may call methods of classes we're not written and we just use them. The methods may have been written in a way that handle exceptions and do something in response. If you call the whole application in this case, you won't get an exception, because it's handled inside the methods. But if you run them via the debugger, you see that these exceptions are thrown.
In this code, it seems that such a thing is happened. I prefer not to uncheck the out of range exception from the Debug/Exceptions... menu. I prefer to be informed if any part of my code is not performing well. But such an exceptions should not be informed, because they're properly handled.
For this, I need to:
1. check all exceptions in Debug/Exceptions... menu of Visual Studio.
2. check the option Enable Just My Code (Managed only) in Tools/Options/Debugging/General.
So, debugger will only stops on exceptions which are thrown by your own code.
PS. I found the info and solution
here.