返回首页

您好,
我想在下面的代码处理异常


CStringArray StrArray;

StrArray.RemoveAll();

{C}
但是,对于上述情况,而不是追赶直接引发调试断言数组大小没有进入catch块内置的VC在该位置目前没有元素的断言。
注: - 我想在调试模式下执行此代码在Release模式
的问候,
madhukar Parab

回答

评论会员:游客 时间:2012/02/07
|SAKryukov:有没有这样的事情为Debug或Release模式。这些都只是配置的名称。配置只是用来切换一次生成和其他选项的群体,他们只是这些团体的名称选项,根据模式*。*的PROJ档案(这是完全不同类型的项目相同)。你可以调试你的应用程序,如果它有两种配置。编译解决您的问题之前,你应该了解这些配置。我希望更好地了解该项目的建设将帮助你。至于这个问题,请参阅在VisualStudio中的选项:[主菜单]=调试=GT;例外mdash;水杨酸
伟业奥尔金:只需检查的大小,然后再尝试访问使用GetUpperBound()

CStringArray arr;

arr.RemoveAll();

 

CString tst;

int i=1; //for testing



if( i<= arr.GetUpperBound())

	tst = arr.ElementAt(i);


您还可以使用的getSize(),只记得,在一个空的列表,那将会给你零的地方GetUpperBound会给你(大小给你的元素上界给你最大的索引):-1 |夹头Ø "图勒
评论会员:游客 时间:2012/02/07
忽略-水杨酸的意见,当然有是调试和释放模式,在IDE中生成由defaule你,那里有Debug和Release库,这是不同的,和当然,,吨代码项目文章描述Debug和Release模式之间的差异。您可以创建自己的"配置"或渣土,以至于他们不再像IDE中设置的默认设置为调试和发布配置。然而,默认的debug和release模式配置是如此根深蒂固,在发展进程中,他们已经对自己的意思,在我们的共同/公用内存。至于你的问题,DEBUG模式库使用断言宏来捕捉这些例程调用中的常见问题,*前*,他们炸毁了意想不到的方式,并抛出异常。在调试过程中,他们是有意义的信息,帮助您捕捉这些问题,而不是你抓住"空指针异常"或其他不起眼的问题,你必须调查。因此,尽管他们在这方面很有帮助,他们拿走你的能力,以"捕捉"异常。其中许多主张不要让你的"继续",即恢复使用错误值/参数的代码。通常情况下,这样做会抛出异常,你希望赶上。但别忘了,调试器试图帮助你有太多,所以它可能会看到之前,你无论如何异常。小的代价为所有其他的帮助调试给你