どっち派議論スレッド PART1
■ このスレッドは過去ログ倉庫に格納されています
0355私はNULLが嫌いだ
NGNG{
if(uri)
{
uriheader uh=memalloc(sizeof(*uh)));
if(uh)
{
uriheader_init(uh);
uh->uri=str_dup(uri);
if(uh->uri)
{
中処理略
return uh;
}
}
uri_delete(uh);
}
return NULL;
}
自分はいっつもこう書いてる。メリットは
・正常なフローが前半に、異常なフロー・エラーリカバリが後半にきれいに分かれている。
これは例外処理と構造が類似していて理にかなっている。
・ifの条件式が肯定的で分かりやすい。
・ローカル変数のスコープがさらに限定されている。
・エラー処理が簡単に追加できる。
例えばuh->uri==NULLの場合のみ行われる処理をどこに書くかすぐに分かる。
#ところでmemalloc失敗してもuri_delete呼ぶのか?
・各処理がブロック内で完結しているので規模が大きくなったときに分割が容易。
・総じて平坦なコードと比べて試行錯誤することが少なくなる。
・何よりインデントが美しい(藁
■ このスレッドは過去ログ倉庫に格納されています