Shanraq.org Shanraq.org
Қате бақыланатын дерек ретінде
Қоғам

Информатика: өз цифрлық көмекшімізді жасаймыз 36-сабақ (барлығы 38)

Қате бақыланатын дерек ретінде

Қатені дерек ретінде оқып, қате енгізуден тапсырмаларды жоғалтпауды үйренеміз.

Картадағы орнымыз

Бұл 72 сабақтың 36-сі, Python блогының (27–38) бөлігі. Тірек сызба тексерілетін өтулерді көрсетеді. 0.3 қағаз келісіміндегі еске салудың бес нәтижесі мен ойдан алынған бастапқы тапсырмаларды жалғастырамыз.

Қате бақыланатын дерек ретінде

Жағдай және сұрақ

Досыңыз 2026-02-29 мерзімін енгізді. Көмекші оны үнсіз 1 наурызға ауыстырмауы да, файлды өшірмеуі де тиіс. Енгізу, күн ережесі әлде сақтау бұзылды ма? Алғашқы ауытқуды табайық.

Жаңа сөздерді анық түсінейік

Ерекше жағдай — Python әдеттегі жолмен әрекетті орындай алмайтынын білдіретін белгі. ValueError жарамсыз мәнді, FileNotFoundError файлдың жоқтығын хабарлайды. Қате ізі шақыру тізбегі мен жаңылысқан жолды көрсетеді; оны соңғы жолдан бастап кодпен салыстырады. try ішінде қатерлі әрекет, ал except ValueError тек күтілген мән қатесін ұстайды. Жөндеу — бақылаудан себеп іздеп, түзетуді тексеру. Мұндағы дерек инварианты: жазуға дейінгі қате сақталған тапсырманы өзгертпейді. Жалпылама except: бағдарламалық ақауды жасырады.

Сабақтың тірек сигналы

Кіріс → ережені тексеру → күйді өзгерту → бақыланатын нәтиже. Бағдарлама қай жерде деректі оқитынын, келісіммен салыстыратынын және қай жерде тек хабарлайтынын көрсетіңіз. Қадам сызбада көрінбесе, кодтан тауып, өз трассаңызға қосыңыз.

Қадамдап талдаймыз

Алдымен күтілетін нәтижені жазыңыз: жарамсыз күн INVALID DATE беруі, ескі файл байтқа дейін сол қалпы қалуы тиіс. Мысалды жүргізіп, except ValueError тармағын оқыңыз. Сосын файл көшірмесіндегі JSON-ның бір әрпін өзгертіңіз: бұл енді JSONDecodeError, оны жарамсыз күнмен шатастырмаңыз. assistant_core әуелі бүкіл құжат пен күнді тексереді, содан кейін ғана сақтау үшін өзгерген көшірме дайындайды. Сәтсіз add алдында және кейін файл хешін салыстырыңыз.

Болжаңыз және тексеріңіз

Нәтиже блогын жабыңыз. Атаулар мәнін жол сайын бақылап, әріп регистрі мен жол ретін қоса нақты мәтінді болжаңыз. Содан кейін ғана кодты step-03 каталогында python3 арқылы орындап, таңба бойынша салыстырыңыз. Бір кірісті өзгертіп, іске қоспай тұрып жаңа болжам жазыңыз. Айырма болса, жауабыңызды кейін ыңғайламай, алғашқы ауытқыған жолды табыңыз.

from assistant_core import parse_date
try:
    parse_date("2026-02-29")
except ValueError:
    print("INVALID DATE")

Күтілетін нәтиже

INVALID DATE

Қатені табыңыз

except Exception: pass бәрі дұрыс сияқты көрсетеді. Файл оқылмаса, «тапсырма жоқ» деп бос тізім шығару — жалған. «Файл жоқ», «JSON жарамсыз», «тапсырма жоқ» жағдайларын бөліп, ойдан дерек шығармай дәл себебін көрсетіңіз.

Жобаға енгізілетін өзгеріс

assistant.py күтілетін қатеге түсінікті хабар мен нөлден бөлек аяқталу кодын береді; assistant_core.py тексерілмеген құжатты жазбайды. Келесі өзгеріс қатені дерек жоғалтуға айналдырмас үшін сәтсіз жағдайларды тестке тіркеңіз.

Тапсырма және дәлел

tasks.json көшірмесінде жарамсыз күнді, қайталанған id-ді, бұзылған JSON-ды және жоқ файлды сынаңыз. Әр жағдайда күтілген қатені, нақты хабарды және файл өзгерген-өзгермегенін жазыңыз. Бір қатені түзетіп, бұрынғы сәтті сценарийді қайталаңыз: жаңа жол ескісін бұзбауы тиіс.

Жаңа жағдайға көшіру

Мектеп журналы ашылмайды: құпиясөз қате немесе желі үзілген. Неге «журналда баға жоқ» деу қауіпті? Екі бөлек хабар ұсынып, әр сәтсіздікте қандай дерек өзгермеуі керегін атаңыз.

1, 7 және 30 күннен кейін қайталау

1 күннен кейін бетті ашпай ереже мен бір шекара мысалын еске түсіріңіз. 7 күннен кейін жаңа мысалдағы қатені сыныптасыңызға түсіндіріңіз. 30 күннен кейін жоба тестін қайталап, бұрынғы жазба мен нәтиженің сақталғанын тексеріп, ережені өзге міндетке қолданыңыз.

Келесі сабақ

Келесі: Тесттер мен модульдер өзгерісті қорғайды

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Жоба дәлелін тексеру

Бақылауды, түсіндіруді, қатені түзетуді және жобаңыздағы өзгерісті жазыңыз. Модель алғашқы шатасқан немесе дәлелденбеген байланысты көрсетеді, бірақ дайын жауапты бермейді.

Тексеру үшін кіру керек. Кіру

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.