エラーチェック
種類
NULLチェック
型チェック
値の範囲チェック
期待値チェック
関数の実行エラー
関数は実行成功したが、内容がエラー
コーディング
できるだけ処理(関数)の前方でエラーチェックを行うのがよい。
「OKかどうか」で判断すると、if文の階層がどんどん深くなる。
「NGかどうか」で判断すると、本来の処理は階層が深くなりにくい。
以下の例では、3番目の「NGかどうかチェック+else.c」を推奨するsngm45.icon
code:NGかどうかチェック.c
uint8 ret;
ret = func1();
if (ret != OK)
{
/* エラー処理 */
}
func2();
func1()とfunc2()は、同じ階層にある。
code:OKかどうかチェック.c
uint8 ret;
ret = func1();
if (ret == OK)
{
func2();
}
else
{
/* エラー処理 */
}
func1()とfunc2()は、異なる階層にある。
code:NGかどうかチェック+else.c
uint8 ret;
ret = func1();
if (ret != OK)
{
/* エラー処理 */
}
else
{
func2();
}
func1()とfunc2()は、異なる階層にある。これが一番直感的か。