код без ошибок не умеет писать никто.Абсолютно никто. Но для начала, для новичков, весь код можно обрамлять через try...catch... Т.е. в случае ошибки программы не вылетает, а выдает заранее сформированное сообщение об ошибке. Таким образом выявляется 90% ошибок программы.
А впоследствии, когда приходит опыт, уже знаешь, куда смотреть, где что проверять и т.д. Хотя, как говорится, "100%-ную защиту от дурака" создать тяжело. Всегда найдутся те, кто нажмет что то так, как, по твоему мнению, сделать невозможно