我有两个FOR循环,外部将重复64次 我所知道的有一个索引超出范围的错误 如何设置一个好的断点或try / catch块等,它确切地显示了导致问题的索引和代码行。 (C#WinApp)
谢谢大家。
答案 0 :(得分:7)
在VS调试器中,您只需在“异常”对话框中启用“Break On Thrown Exception”。然后您不需要设置断点,调试器将在异常时自动停止提高。
您在以下位置进行此更改:调试>>例外>>公共语言运行时异常
只需在对话框的“Thrown”列中检查相应的异常:
alt text http://img248.imageshack.us/img248/5733/breakg.png
如果你需要在引发异常之前中断(让我们说检查一些易失性数据),可以在特定的行上设置条件断点,只有当你的代码中的某些条件是真正。为此,您可以设置常规断点,然后右键单击边距中的红色圆圈图标,然后选择:[条件...]。
这将打开conditional breakpoint对话框,您可以在其中编写一个表达式,当计算结果为true(或某些值发生更改时)时,该表达式将导致调试器中断。断点条件可能有点挑剔,但如果您坚持使用代码中的简单变量,它就能很好地运行。
答案 1 :(得分:2)
如果您使用的是Visual Studio,最简单的方法就是点击F5。调试器将自动中断代码抛出的异常,这些异常未被捕获。
如果在您的代码中的其他位置捕获到异常,则这不一定有效。如果是这种情况,您可以通过转到
启用中断例外答案 2 :(得分:2)
[我认为其他答案对于这个特定问题更好,但由于考虑了范围,我将离开这个问题。]
为了快速调试,进入循环,这样你的循环变量仍然在范围内并填充。
int[] array = new int[10];
for (int i = 0; i < 20; i++)
{
try
{
int temp = array[i];
}
catch (IndexOutOfRangeException ex)
{
// i is still in scope
}
}