我写代码有一个小技巧。 先把所有的异常统统return掉, 然后再处理正常的逻辑。另外,在循环中善用continue,先判断异常continue掉再处理。

比如有这样一个结构的函数

void f()
{
    if (cond1) {
        for(xxx;xxx;xxx) {
            if (cond2) {
                // do you want;
            }
        }
    }
}

那么我们可以改写为:

void f()
{
    if (!cond1) {
        return;
    }
    for (xxx;xxx;xxx) {
        if (!cond2) {
            continue;
        }
        // do you want
    }
}