Кіріспе
Компьютерлік бағдарламалауда қателерді жасыру (немесе қателерді жұту) - қателерді немесе ерекшеліктерді ұстап алу және кейін қателерді бағдарламаның басқа бөліктеріне тіркеместен, өңдемей немесе хабарламай жалғастыру. Қателерді осылай өңдеу компьютерлік бағдарламалауда жаман тәжірибе және анти-үлгі болып саналады. Ерекшеліктерді өңдеуді қолданатын тілдерде бұл практика ерекшеліктерді жұту деп аталады. Қателер мен ерекшеліктер бірнеше мақсатқа ие: Бағдарламалық жасақтаманы пайдаланушы бағдарламалық жасақтаманы орындаған кезде пайда болатын мәселелерді, журналдау жүйесімен біріктіргенде, бағдарламалық жасақтаманы ұстауға және түсінуге көмектеседі. Бағдарламалық жасақтаманы пайдаланушыға пайдалы ақпаратты ұсынады, егер ол UI-де көрсетілген мәнді қате хабарламаларымен, қате кодтарымен немесе қате типтерімен біріктірілсе, консоль хабарламалары ретінде немесе API-ден қайтарылған деректер ретінде (программалық жасақтаманың түріне және пайдаланушының түріне байланысты) Қалыпты жұмыс жалғаса алмайтынын көрсетеді, сондықтан бағдарламалық жасақтама қажетті тапсырманы орындаудың баламалы тәсілдеріне немесе операцияны тоқтатуға оралуы мүмкін. Қателіктер жұтылса, бұл мақсаттар орындалмайды. Қате туралы ақпарат жоғалады, бұл проблемаларды анықтауды өте қиын етеді. Бағдарламалық жасақтаманың қалай іске асырылуына байланысты ол басқа қателерге ұшыраған, жүйені тұрақсыздандырған қаламаушылық әсерлерге әкелуі мүмкін. Мәселелердің түпкі себебі туралы ақпаратсыз, не дұрыс емес екенін немесе оны қалай түзетуге болатынын анықтау өте қиын.
Help software maintainers track down and understand problems that happen when a user is running the software, when combined with a logging system
Provide useful information to the user of the software, when combined with meaningful error messages, error codes or error types shown in a UI, as console messages, or as data returned from an API (depending on the type of software and type of user)
Indicate that normal operation cannot continue, so the software can fall back to alternative ways of performing the required task or abort the operation. When errors are swallowed, these purposes can't be accomplished. Information about the error is lost, which makes it very hard to track down problems. Depending on how the software is implemented, it can cause unintended side effects that cascade into other errors, destabilizing the system. Without information about the root cause of the problem, it's very hard to figure out what is going wrong or how to fix it.
Себептер
Қателерді жұтудың ең көп таралған себебі - бағдарлама жасаушы бағдарлама жасау кезінде жақсы журналды құрастыру құралдары мен процестерінің болмауы. Егер бағдарлама жасаушыда жақсы журналдау құралдары болса, күтпеген қателерді тіркеу оған уақыт пен күш жұмсамайды. Қателерді тіркеу қарапайым (бір әдіс шақыру), жылдам (өтінімнің жұмыс істеуіне әсер етпейді), қауіпсіз (бірде-бір қателер немесе ерекшеліктер тудырмайды) және барлық ақпарат сақталуын қамтамасыз етеді, қате түрі мен оған байланысты кез келген тиісті деректер, қателердің стек-тректері (осылайша әзірлеуші қате қай жерде пайда болғанын және оған қандай нұсқаулар әкелгенін нақты анықтай алады) және қателердің уақыт белгісі сақталады.
Уақытша ерекшеліктерді өңдеушілер
Тексерілген ерекшеліктері бар тілдерде әдісте келтірілген барлық ерекшеліктер осы әдістің қолтаңбасында тізімделуі тиіс. Бағдарламалық жасақтаманы прототиптеу мен іске асыру кезінде код жиі өзгереді, яғни әдісте көтерілуі мүмкін ерекшеліктердің түрі де жиі өзгереді. Әрбір өзгерген сайын әдіс қолтаңбасын өзгерту дамуды баяулатады және көңілді қалдырады, сондықтан үлкен кодты өзгерту кезінде уақытша шара ретінде ерекшеліктерді жұту қызықты. Бұл уақытша ерекшеліктерді өңдеу коды шығарылған код базасына енуі мүмкін. Тіпті тексерілген ерекшеліктерсіз тілдерде де, прототиптеуді жылдамдату үшін үлкен кодты өзгерту кезінде уақытша ерекшеліктерді басқарушыларды қосу мүмкін, бұл қателерді жұтуға әкелуі мүмкін.
Авариялық апаттардың алдын алу
Бағдарламалық жасақтама кез келген себеппен құлап қалмауы керек болған жағдайларда, қателерді жұту - бағдарламашы оңай түсіп қалатын тәжірибе. Мысалы, басқа қолданбаның ішінде орындалатын плагин барлық қателер мен ерекшеліктерді ол енгізілген қолданбаны құламау үшін басқарады деп күтіледі. Қателер мен ерекшеліктерді жалпылап анықтау кез келген шығынға жол бермеуге тырысқанда оңай болатын үлгі, ал оны нашар тіркелу құралдарымен біріктіргенде, қателерді жұту мүмкін.
Пайдаланушыдан күрделілік жасыру
Пайдаланушыларға қателерді көрсету кезінде құпия техникалық қателерді не болғанын түсіндіретін хабарламаларға айналдыру маңызды және егер бар болса, пайдаланушы мәселені шешу үшін қандай әрекеттер жасай алады. Техникалық қателерді мағыналы пайдаланушы хабарламаларына аудару кезінде, нақты қателер көбінесе жалпы қателерге топтастырылады, және бұл процесс пайдаланушы хабарламаларының пайдасыз болуына әкелуі мүмкін, сондықтан пайдаланушы не дұрыс емес екенін немесе оны қалай түзетуге болатынын білмейді. Пайдаланушы үшін бұл қателік қабылданды.