一个BCB中异常处理的问题
tuhuo 2007-04-02 08:34:08 问题是这样的,在设置IdUDPServer的DefaultPort属性时,因为我不知道哪些端口是可用的,所以给出一个端口值下界,然后从这个值开始不断尝试,直到找到一个能用的端口,代码如下:
------------------------------------------------------
udpPort = udpPortLow;//从5000开始尝试
bool bKeepDetect;//是否继续尝试
do {
bKeepDetect = false;
try {
UDPServer->DefaultPort = udpPort;
UDPServer->Active = true;
} catch(const EIdCouldNotBindSocket& e) {
mmStatus->Lines->Add(IntToStr(g_lSeqNum++) + ":" + e.Message);
++udpPort;//尝试下一端口
bKeepDetect = true;
}
}while(bKeepDetect);
--------------------------------------------------------
当我运行第一个实例时,获得的端口是5000,以后所有实例获得的端口都是5001,也就是发生异常后就跳出循环了。而且,调试的时候,似乎没有办法进入我自己的异常处理部分,一旦发生异常,就被调试器直接捕获了,所以我也没办法进行调试。
请大虾指点一下这段代码应该怎么写,还有就是怎么样设置可以在调试时进入自己的异常处理,谢谢!