关于try catch 谢谢~~~~~~~~~
在这里有1个crash 潜在 我想加个try catch 怎么加 谢谢
inline void FlightReportUpdate(const uint32 &diff)
{
Guard guard(*this);
for(FlightMapType::iterator iter=i_flights.begin(); iter != i_flights.end();)
{
//DEBUG_LOG( "id=%d IsInWorld=%d ", iter-> first,iter-> first-> IsInWorld());
if( iter-> first-> IsInWorld() != 1 )
{
// do not use any func like "getname() " if player is offline, or it crash server(就是这里会出现问题)
DEBUG_LOG( "Removing player id=%d flight from flight master. (player offline) ", iter-> first);
delete iter-> second;
i_flights.erase(iter++);
}
else if( iter-> second-> CheckFlight(diff) )
{
DEBUG_LOG( "Removing player %s flight from flight master. ", iter-> first-> GetName());
delete iter-> second;
i_flights.erase(iter++);
}
else
++iter;
}
}
[解决办法]
先问一句,crash的地方是throw东西然后导致崩溃的嘛?
它不throw的话,你catch是没有意义的
[解决办法]
让他重新跳到正确的地方 继续执行
------------------------------------------
既然跳到正确地方继续执行了,那就不用catch了阿