Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
JavaScript (c) Irja & Reino Aarinen, 2007
Luokkien väliset koostesuhteet
Luokan otsikko- ja toteutustiedosto tMyn1 Luokan otsikko- ja toteutustiedosto •Tähän asti ohjelmaesimerkit on toteutettu siten, että kaikki koodi on yhdessä.
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
Datan määrittely, MySQL
Tietokantatapahtuman hallinta
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Relaatiomallin perusteet
Jukka Juslin Poikkeukset ja niiden paikallistaminen * Jukka Juslin * Liittyy oppikirjan lukuun 11.
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Olio-ohjelmoinnin perusteet luento 3
OLIO-OHJELMOINTI PERUSTEET PERUSTIETOTYYPIT
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
Luokkien löytyminen käytännössä tMyn1 Luokkien löytyminen käytännössä Kun aletaan ratkaista elävän elämän ohjelmointitehtäviä, niin ensimmäisten asioiden.
Johdanto HTML-julkaisukieleen
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
13. Hyvä ohjelmointitapa (osa 1)
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
© Jukka Harju, Jukka Juslin
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Luokan muodostintMyn1 Luokan muodostin Olioihin kohdistuvia automaattisia toimintoja ovat luonti, alustus, kopiointi, sijoitus, tyhjennys ja tuhoaminen.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Lomakkeet ja vuorovaikutteisuus
Kuinka niitä käsitellään
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
Ohjelman keskeytys virhetilanteessa tMyn1 Ohjelman keskeytys virhetilanteessa Poikkeustilanteet voidaan ryhmitellä logiikkavirheisiin ja muihin ajonaikaisiin.
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely.
Johdetun luokan olion esittely... tMyn1 Johdetun luokan olion esittely ja määrittely Esittelyluokka tarkoittaa olion tunnuksen luokkaa. Määrittelyluokka.
Tiedostojen käsittely
Oman poikkeus- käsittelyfunktion tMyn1 Oman poikkeuskäsittelyfunktion määrittely Funktion tulisi muodostaa ainoastaan sellaisia poikkeuksia, jotka on sallittu.
Tekstitiedostoon kirjoittaminen tMyn1 Tekstitiedostoon kirjoittaminen Tiedostoja käsitellään ohjelmassa tiedosto-olion avulla. Tiedosto-olion luokka sisältää.
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
Tiedon vieminen funktiolle tMyn1 Tiedon vieminen funktiolle, parametrit Argumentin vieminen funktiolle voidaan toteuttaa kahdella menetelmällä: –Pass-by-Value.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Kantaluokan määrittely tMyn1 Kantaluokan määrittely Perinnän käyttöön liittyvät varatut sanat private, protected, public, final ja abstract. Ne tarkoittavat.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
Tiedostot. 8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.
Yksikkötestaus ● Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin.
6. Tiedostot.
Poikkeustenkäsittelylohkot try-catch
14. Poikkeukset.
Kuinka niitä käsitellään
7. Hyvä ohjelmointitapa..
Ohjelman keskeytys virhetilanteessa
Kantaluokan määrittely
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Kantaluokan määrittely
Kuinka niitä käsitellään
14. Hyvä ohjelmointitapa.
7. Hyvä ohjelmointitapa..
14. Poikkeukset.
3. Attribuutit.
14. Poikkeukset.
Esityksen transkriptio:

Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja catch. try aloittaa poikkeustenkäsittelylohkon, johon ohjelmoija kirjoittaa virhealttiin ohjelmakoodin. Jos try-lohkossa tapahtuu virhe, throw luo poikkeuksen, jonka catch-lohko käsittelee. catch-lohko sisältää kullekin virhetilanteelle käsittelijän. try- ja catch-lohkot sijaitsevat suoritusjärjestyksessä peräkkäin.

Poikkeustenkäsittely- lohkot tMyn2 Poikkeus voi olla mitä tahansa tyyppiä oleva tieto tai olio. Usein on hyödyllistä määritellä poikkeusten käsittelyä varten erillinen luokka, johon voidaan määritellä tietojäseniä virhetilanteiden tallettamista varten. Kun poikkeustilanne syntyy, ohjelman eteneminen keskeytyy, ja ohjelma etsii sopivaa poikkeuksenkäsittelijää.

Poikkeustenkäsittely- lohkot tMyn3 try-catch -lohkot: try { //virhealtis toiminta } catch (tyyppi poikkeus) { //poikkeuskäsittely } catch(...) { //poikkeuskäsittely }

Poikkeustenkäsittely- lohkot tMyn4 try- ja catch -lohkot sijaitsevat suoritusjärjestyksessä peräkkäin. try-lohko sisältää ohjelmakoodin, joka voi aiheuttaa poikkeustilanteen. catch-lohkossa voidaan määritellä poikkeuksenkäsittelijä kullekin eri poikkeukselle. Poikkeuksenkäsittelijä on catch-lohkossa sijaitseva ohjelmakoodi. Poikkeustieto tai olio määritellään catch-sanan jäljessä olevien sulkeiden välissä.

Poikkeustenkäsittely- lohkot tMyn5 tyyppi tarkoittaa poikkeustiedon tai olion tyyppiä ja poikkeus on tieto tai olio, johon voidaan viitata catch- lohkossa. Poikkeus on paikallinen lohkossa. Jos sulkeiden sisällä on kolme pistettä, käsittelee lohko minkä tahansa poikkeustilanteen. Poikkeuskäsittelylohkot voivat olla myös sisäkkäisiä, joten ne voivat muodostaa sisäkkäisiä tasoja.

Poikkeustenkäsittely- lohkot tMyn6 Poikkeustilanteen aiheuttaminen varatulla sanalla throw: throw (poikkeukset); throw; Poikkeukset määritellään throw-sanan jäljessä. Poikkeukset voivat olla sulkeiden sisällä. Jos tilanteesta syntyy useita poikkeuksia, on poikkeukset eroteltava pilkulla toisistaan. throw-sanaa käytetään normaalisti try-lohkossa. catch-lohkossa on kuitenkin mahdollista nostattaa uusi poikkeustilanne.

Poikkeustenkäsittely- lohkot tMyn7 Tällöin voidaan throw-sanaa käyttää ilman erityistä poikkeustietoa, jolloin poikkeuskäsittely siirretään seuraavaksi korkeammalle poikkeuskäsittelytasolle sisäkkäisissä poikkeuskäsittelyrakenteissa. Jos throw esiintyy uloimmalla tasolla, ohjelma kutsuu terminate-funktiota. Kokeillaan try-catch –rakenteen toimimista.

Poikkeustenkäsittely- lohkot tMyn8 Jos poikkeustilanne aiheutetaan, mutta poikkeuksenkäsittelijää ei toteuteta, niin seurauksena on ohjelman ajon keskeytyminen, Fatal error:

Poikkeustenkäsittely- lohkot tMyn9

Poikkeustenkäsittely- lohkot tMyn10

Poikkeustenkäsittely- lohkot tMyn11 PHP:n sisäänrakennettu poikkeuskäsittelyluokka näyttää seuraavanlaiselta:

Poikkeustenkäsittely- lohkot tMyn12 <?php class Exception { protected $message = 'Unknown exception'; // exception message protected $code = 0; // user defined exception code protected $file; // source filename of exception protected $line; // source line of exception function __construct($message = null, $code = 0); final function getMessage(); // message of exception final function getCode(); // code of exception final function getFile(); // source filename final function getLine(); // source line final function getTrace(); // an array of the backtrace() final function getTraceAsString(); // formated string of trace /* Overrideable */ function __toString(); // formated string for display } ?>

Poikkeustenkäsittely- lohkot tMyn13 Toteutetaan äskeinen ohjelma siten, että kirjoitetaan virhealtis koodi try-lohkoon ja toteutetaan virhetilanteelle käsittelijä catch-lohkoon:

Poikkeustenkäsittely- lohkot tMyn14

Poikkeustenkäsittely- lohkot tMyn15

Poikkeustenkäsittely- lohkot tMyn16

Poikkeustenkäsittely- lohkot tMyn17 Description final public string Exception::getMessage ( void ) Returns the Exception message. Parameters This function has no parameters. Return Values Returns the Exception message as a string.

Poikkeustenkäsittely- lohkot tMyn18 Otetaan poikkeuskäsittelyluokasta vielä käyttöön jäsenfunktio getCode(), muilta osin esimerkki on sama kuin edellä:

Poikkeustenkäsittely- lohkot tMyn19

Poikkeustenkäsittely- lohkot tMyn20

Poikkeustenkäsittely- lohkot tMyn21

Poikkeustenkäsittely- lohkot tMyn22 Description final public int Exception::getCode ( void ) Returns the Exception code. Parameters This function has no parameters. Return Values Returns the Exception code as an integer.

Poikkeustenkäsittely- lohkot tMyn23 Millähän rivillä virhe havaittiin?:

Poikkeustenkäsittely- lohkot tMyn24

Poikkeustenkäsittely- lohkot tMyn25

Poikkeustenkäsittely- lohkot tMyn26

Poikkeustenkäsittely- lohkot tMyn27 Description final public int Exception::getLine ( void ) Returns line number where the exception was thrown. Parameters This function has no parameters. Return Values Returns the line number where the exception was thrown.

Poikkeustenkäsittely- lohkot tMyn28 Sisäänrakennettua Exception-luokkaa voidaan käyttää kantaluokkana, ja periyttää siitä omia poikkeuskäsittelyluokkia erilaisten virhetilanteiden käsittelyyn. Koska omaan poikkeustenkäsittelyluokkaan periytetään kantaluokan jäsenfunktiot, voidaan johdetussa luokassa käyttää kantaluokan jäsenfunktioita (vaikkapa jäsenfunktioita getMessage(), getCode(), getFile()):

Poikkeustenkäsittely- lohkot tMyn29

Poikkeustenkäsittely- lohkot tMyn30

Poikkeustenkäsittely- lohkot tMyn31

Poikkeustenkäsittely- lohkot tMyn32 Description final public string Exception::getFile ( void ) Get the name of the file the exception was thrown from. Parameters This function has no parameters. Return Values Returns the filename in which the exception was thrown.

Poikkeustenkäsittely- lohkot tMyn33 Muutetaan edellistä esimerkkiä siten, että toteutetaan omaan poikkeustenkäsittelyluokkaan oma jäsenfunktio:

Poikkeustenkäsittely- lohkot tMyn34

Poikkeustenkäsittely- lohkot tMyn35

Poikkeustenkäsittely- lohkot tMyn36

Poikkeustenkäsittely- lohkot tMyn37 try-lohkon perässä voi olla useampia käsittelijöitä (catch-lohkoja), ja ne tutkitaan siinä järjestyksessä kuin ne koodissa ovat. Ensimmäinen käsittelijä, jonka tyyppi vastaa poikkeuksen tyyppiä, suoritetaan.

Poikkeustenkäsittely- lohkot tMyn38

Poikkeustenkäsittely- lohkot tMyn39

Poikkeustenkäsittely- lohkot tMyn40

Poikkeustenkäsittely- lohkot tMyn41

Poikkeustenkäsittely- lohkot tMyn42

Poikkeustenkäsittely- lohkot tMyn43

Poikkeustenkäsittely- lohkot tMyn44

Poikkeustenkäsittely- lohkot tMyn45