Боби 11 • Хатогиҳо ва истиснокҳо
Идораи хатогиҳо дар SomonScript
Бо блокҳои кӯшиш-гирифтан ва синфҳои хатогии фармоишӣ мо метавонем хатогиҳоро идора кунем, ба корбар паёми фаҳмо нишон диҳем ва барномаро аз шикастан нигоҳ дорем.
1. Мисоли оддӣ: тақсим ба сифр
Дар ин мисол функсияе навишта мешавад, ки агар ба сифр тақсим кардан кӯшиш кунем, истиснок мепартояд ва мо онро дар блоки кӯшиш-гирифтан идора мекунем.
Тақсим бо санҷиши хатогӣ
Функсия бо санҷиши тақсим ба сифр ва истифодаи блоки кӯшиш-гирифтан.
example.som
// Функсия барои тақсим кардан бо санҷиши хатогӣ
функсия тақсим_кардан(а: рақам, б: рақам): рақам {
агар (б === 0) {
партофтан нав Хато("Тақсим ба сифр иҷозат нест");
}
бозгашт а / б;
}
// Истифода бо идораи хатогиҳо
кӯшиш {
тағ натиҷа: рақам = тақсим_кардан(10, 0);
чоп.сабт("Натиҷа: " + натиҷа);
} гирифтан (хато) {
чоп.хато("Хато: " + хато.паём);
}terminal
somon run errors-basic.som
Хато: Тақсим ба сифр иҷозат нест2. Мисоли каме мушкил: синфи хатогии фармоишӣ
Акнун синфи хатогии махсус эҷод мекунем, ки барои тасдиқи маълумоти корбар истифода мешавад. Ин ба мо имкон медиҳад, ки намудҳои гуногуни хатогиро ҷудо кунем.
Хатои фармоишӣ барои тасдиқ
Синфи хатогии фармоишӣ ва истифодаи он дар функсияҳои тасдиқ.
example.som
// Синфи хатогии фармоишӣ барои тасдиқи маълумот
синф Хатои_тасдиқ мерос Хато {
конструктор(паём: сатр) {
супер(паём);
ин.ном = "Хатои_тасдиқ";
}
}
функсия тасдиқи_синну_сол(синну_сол: рақам): холӣ {
агар (синну_сол < 0) {
партофтан нав Хатои_тасдиқ("Синну сол набояд манфӣ бошад");
}
агар (синну_сол > 150) {
партофтан нав Хатои_тасдиқ("Синну соли хеле калон");
}
чоп.сабт("Синну сол дуруст аст: " + синну_сол);
}
// Истифода бо идораи хатогии махсус
кӯшиш {
тасдиқи_синну_сол(-5);
} гирифтан (хато) {
агар (хато instanceof Хатои_тасдиқ) {
чоп.хато("Хатои тасдиқ: " + хато.паём);
} вагарна {
чоп.хато("Хатои номаълум: " + хато);
}
}terminal
somon run errors-validate.som
Хатои тасдиқ: Синну сол набояд манфӣ бошад3. Машқҳо
Ин машқҳо ба шумо кӯмак мекунанд, ки бо идораи хатогиҳо беҳтар шинос шавед. Барои ҷавобҳои муфассал ба боби 11 нигаред.
- Функсияе нависед, ки синну солро тасдиқ мекунад ва дар ҳолати нодуруст истиснок мепартояд.
- Системаи оддии сабти хатогиҳо эҷод кунед, ки паёмҳои хатогиро ба массив менависад ва дар охир онҳоро ба экран намоиш медиҳад.
- Синфи хатогии фармоишӣ барои "Хатои базаи маълумот" созед ва онро дар функсияи пайвастшавӣ ба база истифода баред.
