Преглед садржаја
Једном када се изузме изузетак, наша је дужност да то решимо, на овај начин наш програм ће моћи да изврши радњу, покрене поруку, затражи исправку параметра који је унео корисник, укратко, многе могућности .Хватање изузетака
Као што смо већ споменули, важна ствар у погледу изузетака је да их можемо ухватити на овај начин, можемо одлучити шта би програм требао учинити када се ова ситуација догоди, да бисмо то учинили, користит ћемо наредбе покушај / осим. Да бисмо показали горе наведено, анализираћемо врло једноставан програм дељења, јер знамо да не можемо да поделимо број са 0, па ће ово изазвати изузетак.
Почнимо са изградњом нашег кода, запамтите да то можемо учинити у било ком уређивачу текста и морамо сачувати датотеку са .пи екстензијом како бисмо је могли извршити у командној линији или на конзоли.
к = инпут ('Унесите први број:') и = инпут ('Унесите други број:') принт к / и [ / сизе] [сизе = 4]
Ово ће радити сасвим исправно док корисник не унесе вредност 0 као други аргумент, ово ће изазвати изузетак као што можемо видети на следећој слици извођења овог програма:
То можемо спречити коришћењем покушај / осим које смо видели на почетку овог одељка, да видимо наш исправљени код:
три: к = инпут ('Унесите први број:') и = инпут ('Унесите други број:') принт к / и осим ЗероДивисионеррор: принт "Други број не може бити нула!"
Овакав начин поступања у овом случају је прилично чист, упркос свему могло би се рећи и једноставним ако то би условило да вредност И Не би било 0 било би адекватно решење, међутим, ако бисмо додали више подела у наш програм, било би нам потребно више условних услова, уместо тога на овај начин нам је потребан само један руковалац могућег изузетка који се генерише.
Ухватите више од једног изузетка
Настављајући са примером поделе на којој смо радили, да видимо шта би се догодило ако уместо 0 унесемо нешто друго:
На слици можемо видети да је унесен текст и наш руковатељ који је очекивао само изузетак типа ЗероДивисионеррор није могао правилно да поступи јер није знао шта да уради са новим генерисаним изузетком.
Да бисмо ухватили нови изузетак, једноставно ћемо додати нови блок осим да би могао да се носи са изузетком ТипеЕррор који настаје дељењем броја текстом.
Погледајмо наш исправљени код:
три: к = инпут ('Унесите први број:') и = инпут ('Унесите други број:') принт к / и осим ЗероДивисионеррор: принт "Други број не може бити нула!" осим ТипеЕррор: принт "То није био број, зар не?"
Да смо изабрали да користимо кондиционале ако, овај задатак би нам одузео много више редова кода, осим што би наш програм учинио мање читљивим.
Хватање два изузетка у истом блоку
Ако нам је потребно да ухватимо неколико изузетака у једном блоку осим оно што морамо да урадимо је да их додамо у декларацију унутар заграда, да видимо код да бисмо га боље разумели:
[ / сизе] три: к = инпут ('Унесите први број:') и = инпут ('Унесите други број:') принт к / и осим ЗероДивисионеррор: принт "Други број не може бити нула!" осим ТипеЕррор: [/ сизе] [сизе = 4] принт "То није био број, зар не?"
Као што смо могли видети, шта год да се деси, апликација ће нам наставити слати исту поруку без обзира да ли је унета 0 или нешто друго осим броја.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен