Microsoft Word - 15_paskaita.doc

Panašūs dokumentai
Masyvas su C++ Užduotys. Išsiaiškinkite kodą (jei reikia pataisykite) ir paleiskite per programą. Ciklo skaitliuko įrašymas į vienmatį masyvą: #includ

Java esminės klasės, 1 dalis Išimtys, Įvestis/išvestis

Slide 1

Pagrindiniai algoritmai dirbant su sveikųjų ir realiųjų skaičių masyvų reikšmėmis Sumos skaičiavimo algoritmas Sveikieji skaičiai int Suma (int X[], i

Algoritmai ir duomenų struktūros (ADS) 7 paskaita Saulius Ragaišis, VU MIF

Algoritmai ir duomenų struktūros (ADS) 2 paskaita Saulius Ragaišis, VU MIF

Slide 1

Microsoft PowerPoint - IOSrautai.ppt

Slide 1

ktu kompiuterių katedra Programavimas asembleriu Darius Birvinskas Ignas Martišius Algimantas Venčkauskas

DIGIPASS DP 260 VARTOTOJO INSTRUKCIJA

skaitiniai metodai 1

Dažniausios IT VBE klaidos

Realių lėktuvų skrydžių atvaizdavimas pagal turimus radaro duomenis

Printing triistr.wxmx

Algoritmø analizës specialieji skyriai

P. Kasparaitis. Praktinė informatika. Skriptų vykdymas ir duomenų valdymas Skriptų vykdymas ir duomenų valdymas Įvadas Skripto failas tai M

4 skyrius Algoritmai grafuose 4.1. Grafų teorijos uždaviniai Grafai Tegul turime viršūnių aibę V = { v 1,v 2,...,v N } (angl. vertex) ir briaun

LIETUVOS RESPUBLIKOS ŪKIO MINISTRAS

skaitiniai metodai 1

Elektroninių pažymėjimų tvarkymo sistema

Microsoft Word - Naudotojo gidas_aplikacijai_

PowerPoint Presentation

GPAIS vartotojo vadovas savivaldybėms GPAIS VARTOTOJO VADOVAS SAVIVALDYBIŲ PILDOMAI INFORMACIJAI GPAIS TURINYS 1. BENDRI DARBO SU GPAIS PRINCIPAI... 2

Rockwool LIETUVA Grindų šiltinimas Tarpauštinių perdangų ir grindų ant grunto šilumos ir garso izoliacija

FORMAI PRITARTA m. Europos Sąjungos struktūrinės paramos administravimo darbo grupės, sudarytos Lietuvos Respublikos finansų ministro 2013 m

Slaptažodžių generatoriaus naudojimo instrukcija Slaptažodžių generatorius tai aukščiausius saugumo reikalavimus atitinkantis įrenginys, kuris generuo

Microsoft Word - 8 Laboratorinis darbas.doc

Ginčo byla Nr LIETUVOS BANKO PRIEŽIŪROS TARNYBOS FINANSINIŲ PASLAUGŲ IR RINKŲ PRIEŽIŪROS DEPARTAMENTO DIREKTORIUS SPRENDIMAS DĖL N. J. IR

Microsoft Word - SDH2.doc

Microsoft Word - Veiklos aprašas copy.docx

MUITINĖS DEPARTAMENTAS PRIE LIETUVOS RESPUBLIKOS FINANSŲ MINISTERIJOS BENDRO NAUDOTOJŲ VALDYMO SISTEMOS, ATITINKANČIOS EUROPOS KOMISIJOS REIKALAVIMUS,

LIETUVOS RESPUBLIKOS ŽEMĖS ŪKIO MINISTRAS ĮSAKYMAS DĖL VIENKARTINIŲ LEIDIMŲ PURKŠTI AUGALŲ APSAUGOS PRODUKTUS IŠ ORO IŠDAVIMO IR GALIOJIMO PANAIKINIMO

PowerPoint Presentation

VISŲ TIPŲ IR GAMINTOJŲ MEMBRANINIAI DUJŲ SKAITIKLIAI 1. Skaitiklių savybės. Visų tipų ir gamintojų membraniniai dujų skaitikliai indikuoja vieną rodme

G L v SEB bankas nuasmeninta

Microsoft Word - DSEA-3s.doc

Microsoft Word - T-Krivousas_magistrinis.doc

DBVS realizavimas Pagrindiniai DBVS komponentai Duomenų saugojimas diske Paruošė J.Skučas

Elektroninio dokumento nuorašas UKMERGĖS RAJONO SAVIVALDYBĖS ADMINISTRACIJOS DIREKTORIUS ĮSAKYMAS DĖL NACIONALINIO MOKINIŲ PASIEKIMŲ PATIKRINIMO (DIAG

Brochure 4

DB sukūrimas ir užpildymas duomenimis

AAA.AIEPI.Mokymu_medziaga_MOK_VI_07.Vandens_inventorizacijos_duomenu_tvarkymas.v.0.4

PowerPoint Presentation

Automatinis skolinimas Automatinio skolinimo paslauga automatiškai teikia pasiūlymus paskolų prašymams pagal Jūsų sukurtuose portfeliuose pasirinktus

Ataskaita dėl Europos aviacijos saugos agentūros 2015 finansinių metų metinių finansinių ataskaitų su Agentūros atsakymu

PATVIRTINTA Lietuvos banko valdybos 2011 m. rugsėjo 1 d. nutarimu Nr (Lietuvos banko valdybos 2015 m. gegužės 28 d. nutarimo Nr redakci

Microsoft Word - Palmolive_Drogas_full_rules_April_2019.doc

LIETUVOS RESPUBLIKOS LYGIŲ GALIMYBIŲ KONTROLIERIUS SPRENDIMAS DĖL GALIMOS DISKRIMINACIJOS LYTIES PAGRINDU UAB NATŪRALIOS IDĖJOS DARBO SKELBIME TYRIMO

PowerPoint Presentation

C(2016)7159/F1 - LT (annex)

KROSNININKO SERTIFIKAVIMO schema

Projektas PATVIRTINTA Alytaus Sakalėlio pradinės mokyklos direktoriaus įsakymu Nr. V- ALYTAUS SAKALĖLIO PRADINĖS MOKYKLOS ELEKTRONINIO DIENYNO T

Microsoft Word - Apibendrinimas pagal skundus del asmens kodo _galutinis_ doc

2014 m. gegužės 15 d. Europos Parlamento ir Tarybos reglamentas (ES) Nr. 654/2014 dėl Europos Sąjungos teisių taikyti tarptautines prekybos taisykles

Priedas Nr.18 PATVIRTINTA Kauno Veršvų gimnazijos direktoriaus 2017 m. liepos.. d. įsakymu Nr. V- KAUNO VERŠVŲ GIMNAZIJA TOLERANCIJOS UGDYMO CENTRO VE

K9 WebProtection (toliau K9) programa yra nemokama asmeniniam naudojimui. Programa suderinama su Windows Vista, Windows 7, Windows 10 ir Mac operacinė

Logines funkcijos termu generavimo algoritmas pagristas funkciniu modeliu

VIEŠO NAUDOJIMO Aplinkos oro teršalų koncentracijos tyrimų, atliktų 2017 m. rugpjūčio d. Šiltnamių g. 23 Vilniaus mieste, naudojant mobiliąją la

Microsoft Word - nutarimo+projektas_+VB

Automatinis skolinimas Automatinio skolinimo paslauga automatiškai teikia pasiūlymus paskolų prašymams pagal Jūsų pasirinkto portfelio rinkinio nustat

X310.book(X310_lt.fm)

PAS30008

LIETUVOS RESPUBLIKOS ENERGETIKOS MINISTRO

Atviro konkurso sąlygų 4 priedas BENDROJO PAGALBOS CENTRO INFORMACINĖS SISTEMOS APTARNAVIMO PASLAUGŲ TEIKIMO SPECIFIKACIJA 1. Pirkimo objektas Bendroj

DISKREČIOJI MATEMATIKA. Grafai serija 5800 variantas 001 Grafas G 1 = (V, B 1 ) apibrėžtas savo viršūnių bei briaunų aibėmis: V = {i, p, z, u, e, s},

INVESTAVIMO TENDENCIJOS IR LIETUVOS INVESTICIJŲ INDEKSAS

Priedas Nr.15 PATVIRTINTA Kauno Veršvų gimnazijos direktoriaus 2018 m..mėn... d. įsakymu Nr. V- KAUNO VERŠVŲ GIMNAZIJA TOLERANCIJOS UGDYMO CENTRO VEIK

Microsoft Word žindenių taisyklės.doc

Specialiosios_SoyouStart_dedikuoto_serverio_nuomos_sutarties_salygos

NACIONALINIS KIBERNETINIO SAUGUMO CENTRAS Tel El. p. NACIONALINIS KIBERNETINIO SAUGUMO CENTRAS PRIE KRA

Tiesioginio-debeto-paslaugos-duomenu-apsikeitimo-formatu-aprasas

Banko_paslaugu_internetu_teikimo_salygos_

Microsoft Word - pildymo instrukcija (parengta VMI).docx

Banko paslaugų ir operacijų kainynas privatiems klientams

IŠ PRAEITOS PASKAITOS jeigu java serveryje įkėlus projektą rodomas tuščias baltas langas, bent ant kito port'o aplikacija veikia pasiūlymas užkomentuo

Microsoft PowerPoint Dvi svarbios ribos [Read-Only]

PRESENTATION NAME

Estijos bendrasis ugdymas –Socialiniai mokslai

DUOMENŲ TEIKIMO SUTARČIŲ REGISTRUI ELEKTRONINIU BŪDU

AVK SUPA PLUS COUPLING 621/61 Tensile, for PE and PVC pipes, NF approved EPDM sealing 001 AVK Supa Plus is a range of tensile couplings, flange adapto

Présentation PowerPoint

Microsoft Word - DBU programa ir planas.rtf

PATVIRTINTA

HISREP sutartis notarams

Microsoft Word - KMAIK dėstytojų konkurso ir atestacijos aprašas (3)

Acer Incorporated

MAGENTO 1.9 OMNIVA MODULIO DIEGIMO INSTRUKCIJA

HOT-G II

VALSTYBINĖS MOKESČIŲ INSPEKCIJOS

2-ojo VSAFAS Finansinės būklės ataskaita 2 priedas (Žemesniojo lygio viešojo sektoriaus subjektų, išskyrus mokesčių fondus ir išteklių fondus, finansi

Neiškiliojo optimizavimo algoritmas su nauju bikriteriniu potencialiųjų simpleksų išrinkimu naudojant Lipšico konstantos įvertį

PATVIRTINTA Lietuvos banko valdybos 2015 m. sausio 29 d. nutarimu Nr (Lietuvos banko valdybos 2018 m. spalio 30 d. nutarimo Nr redakcij

Nuolatinė buveinė ir Europos teismų praktika Mokesčių planavimo (minimizavimo) politika įmonių grupėse, kurių verslas neapsiriboja viena šalimi, per p

FORD EDGE Galioja nuo Variklis ir transmisija Versija Variklio tipas CO 2 (g/km) Kaina, EUR su PVM Nuolaida Specialioji kaina, EUR su PVM 2

Transkriptas:

15 PASKAITA Turinys: Išimtys Išimtys (exceptions) programos vykdymo metu kylančios klaidingos situacijos, nutraukiančios programos darbą (pavyzdžiui, dalyba iš nulio, klaida atveriant duomenų failą, indekso išeitis už masyvo ribų ir pan.). C++ turi išimčių apdorojimo mechanizmą, leidžiantį apdoroti išimtį ir imtis koreguojančių veiksmų nenutraukus programos darbo. Mechanizmo veikimas kiek panašus į if then else endif konstrukciją. Mechanizmas: 1. try kontroliuoja nurodytą bloką, ar ten nekilo išimtis. Galima kontroliuoti vieną operatorių (tarkim, funkcijos kvietimą) arba visą jų grupę; 2. Kontroliuojamo bloko viduje yra operatorius if( klaidos sąlyga ) throw klaidos objektas; 3. catch sugauti klaidą ir ją apdoroti. Programa-schema: class C{ class ErrorClass{ ; klaidos klasė; vidinė klasė void m( ){ if( /* klaidos sąlyga */ ) throw ErrorClass( ); generuojamas klaidos objektas ; C c; c.m( ); catch( C::ErrorClass ) { /* klaidos apdorojimas */ Programos pavyzdys: saugus stekas. const int MAX = 3; steko dydis 58

class Stack{ int st[ MAX ]; int top; class Range{ ; vidinė klaidos klasė; tuščia Stack( ){ top = -1; void push( int value ){ if( top >= MAX-1 ) throw Range( ); generuojama klaida st[ ++top ] = value; int pop( ){ if( top < 0 ) throw Range( ); generuojama klaida return st[ top-- ]; ; Stack s1; s1.push( 11 ); s1.push( 22 ); s1.push( 33 ); s1.push( 44 ); klaidingas operatorius! cout<< 1: <<s1.pop( )<<endl; cout<< 2: <<s1.pop( )<<endl; catch( Stack::Range ){ cout<< Error: stack is full or empty\n ; cout<< End of program \n ; Rezultatai: Error: stack is full or empty End of program Ši programa gali generuoti ir kelias skirtingas klaidas: vieną kai stekas jau užpildytas, ir kitą kai tuščias. const int MAX = 3; class Stack{ int st[ MAX ]; 59

int top; class Full{ ; vidinė klaidos klasė perpildymui class Empty{ ; vidinė klaidos klasė tuščiam stekui Stack( ){ top = -1; void push( int value ){ if( top >= MAX-1 ) throw Full( ); st[ ++top ] = value; int pop( ){ if( top < 0 ) throw Empty( ); return st[ top-- ]; ; Stack s1; s1.push( 11 ); s1.push( 22 ); cout<< 1: <<s1.pop( )<<endl; cout<< 2: <<s1.pop( )<<endl; cout<< 3: <<s1.pop( )<<endl; klaidingas operatorius catch( Stack::Full ){ cout<< Error: stack is full \n ; catch( Stack::Empty ){ cout<< Error: stack is empty \n ; cout<< End of program \n ; Rezultatai: 1: 11 2: 22 Error: stack is empty End of program Išimčių klasės su informacija apie kilusią klaidą. Pavyzdys: jau matyta klasė Distance. Kontroliuojama situacija ar colių skaičius neviršika 12. Taip gali nutikti neteisingai kviečiant metodą-konstruktorių su argumentais ir įvedant duomenis iš klaviatūros. Kilus tokiai klaidai, reikia nurodyti klaidos šaltinį (metodą-konstruktorių ar įvesties metodą) ir įvestą colių skaičių. 60

#include <string> class Distance{ int feet; float inches; class Range{ string source; kur kilo klaida; public! float value; colių skaičius; public! Range( string s, float v ){ source = s; value = v; ; Distance( ){ feet = 0; inches = 0.f; Distance( int ft, float in ){ if( in >= 12.f ) throw Range( Constructor, in ); feet = ft; inches = in; void getdistance( ){ cout<< Enter feet: ; cin>>feet; cout<< Enter inches: ; cin>>inches; if( inches >= 12.f ) throw Range( Method, inches ); ; Distance d1( 10, 10.f ); Distance d2; d2.getdistance( ); cout<< d1: <<d1.feet<< <<d1.inches<<endl; cout<< d2: <<d2.feet<< <<d2.inches<<endl; catch( Distance:: Range r ){ skelbiamas klaidos objektas r cout<< Error\n ; cout<< Error source: <<r.source<<endl; cout<< entered value: <<r.value<<endl; Veikiant programai įvedus iš klaviatūros 10 ir 20.f, programos rezultatai bus: 61

Enter feet: 10 Enter inches: 20.f Error Error source: Method entered value: 20. Sukelti galima ne tik išimtį-objektą, bet išimtį-kintamąjį ar išimtį-konstantinį masyvą ir pan. Pavyzdys-schema:... int badnumber = 10; if( ) throw badnumber; catch(int bn) {cout<<bn<<endl; spausdinama reikšmė 10... C++ yra vidinių kalbos išimčių klasių, kurias galima bandyti perimti. Viena tokių bad_alloc kyla esant nepakankamai vietos dinaminio atminties skyrimo metu. Panašiai išimčiai perimti pakanka tokių veiksmų: catch( bad_alloc ){ nereikia jokios priklausomybės operacijos, jokio papildomo antraštinio failo Kilus bet kokiai išimčiai, kaip tik klaidos kilimo metu sukonstruotam objektui automatiškai kviečiamas destruktorius. Tai leidžia klaidų apdorojimo mechanizmą įdėti į koreguojantįjį klaidą ciklą. 62