enum

どうせ enum を使うなら、ちゃんと enum を型として扱った方がいい。
つまり、

void local_error_handle(int error_type, char* string);

ではなく、

void local_error_handle(enum local_error_types error_type, char* string);

の方がいい。ついでに言えば、

void local_error_handle(enum local_error_types error_type, const char* string);

の方がもっと良い。
あと、こういうケースでは

default:
    assert(0); /* SHOULD NOT REACH HERE */

なんてのも定番な気がする。