Error codes

Looks like I have the same error code 112, but different messages: “Reason: negative waves balance” and “Reason: Script doesn’t exist and proof doesn’t validate as signature for…” when I broadcast transactions. Is it correct?
How can I separate error codes to different catching errors (for sample I will send Waves on “negative waves balance”)? Is there any available Error Code table?