goto 语句
NGINX 谨慎地使用 goto
语句进行错误处理。这是对臭名昭着的 goto
语句来说是一个很好的用例。
许多没有经验的 C 程序员可能会对 goto
语句的用法感到害怕,这是有点不合理的。
使用 goto
语句向后跳是一件坏事,其他情况下通常没问题,特别是错误处理。
NGINX 要求 goto 标签行前后加空行,如
p = ngx_pnalloc(pool, len);
if (p == NULL) {
goto failed;
}
...
i++;
}
freeaddrinfo(res);
return NGX_OK;
failed:
freeaddrinfo(res);
return NGX_ERROR;