java定时器,如何避免下标越界

timer.schedule(new TimerTask()
{
@Override
public void run()
{
Log.i("colorIndex", colorIndex + "");
if (colorIndex > 4)
{
colorIndex = 0;
}else{
colorIndex++;
}
turnningColor = syColors[colorIndex];
postInvalidate();
}
}, 500, 500);
colorIndex 为什么会有时候等于6 如何避免这样的越界?

colorIndex这个变量是在哪里赋值的呢,应该有范围的吧,访问时候限定在它的范围内。