Poikkeustenkäsittelylohkot try-catch

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.
Muutamia käsitteitätMyn1 Muutamia käsitteitä •Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan,
Ict1td002: Ohjelmointitaito Kertaus Osio 2 - luokat - ilmentymät - viittaus- ja arvomuuttuja - ilmentymien taulukointi HAAGA-HELIA IltaTiko.
Jukka Juslin Poikkeukset ja niiden paikallistaminen * Jukka Juslin * Liittyy oppikirjan lukuun 11.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
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.
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
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.
9. Periytyminen Javassa.
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista 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.
7. Oliot ja viitteet.
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Kuinka niitä käsitellään
Muuttujat ja vakiottMyn1 Muuttujat ja vakiot PHP-kielen syntaksi on lainattu suurimmaksi osaksi C- kielestä. PHP on erityisesti HTML-dokumenttien sisään.
1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
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 esittely... tMyn1 Johdetun luokan olion esittely ja määrittely Esittelyluokka tarkoittaa olion tunnuksen luokkaa. Määrittelyluokka.
Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw.
Tiedostojen käsittely
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
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.
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.
3. Olio-ohjelmoinista lyhyesti
6. Tiedostot.
13. Pakkaukset.
14. Poikkeukset.
Kuinka niitä käsitellään
8. Näppäimistöltä lukeminen
7. Hyvä ohjelmointitapa..
for-toistolause for-lauseen rakenne on:
Ohjelman keskeytys virhetilanteessa
Kantaluokan määrittely
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
15. Lohkot.
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Kantaluokan määrittely
Foreach-toistolause foreach-rakenteella on kätevä käydä läpi kaikki taulukon alkiot. Erityisen kätevää se on hajautustaulukon tapauksessa, jossa taulukon.
Luokan määrittely class-määreellä
8. Näppäimistöltä lukeminen
Muutamia käsitteitä Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass,
Kuinka niitä käsitellään
11. Javan valintarakenteet
15. Lohkot.
4. Attribuutit.
15. Ohjelmoinnin tekniikkaa
7. Hyvä ohjelmointitapa..
14. Poikkeukset.
3. Attribuutit.
14. Poikkeukset.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

Poikkeustenkäsittelylohkot try-catch Olio-ohjelmointi PHP 28.1.2018 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 tMyn tMyn, Mikkelin ammattikorkeakoulu

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 tMyn

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

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 tMyn

Poikkeus on paikallinen lohkossa. 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 tMyn

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 tMyn

Kokeillaan try-catch –rakenteen toimimista. 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 tMyn

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

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

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

<. php class Exception { <?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 tMyn

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

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

final public string Exception::getMessage ( void ) 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 tMyn

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

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

final public int Exception::getCode ( void ) 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 tMyn

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

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

final public int Exception::getLine ( void ) 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 tMyn

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 tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

final public string Exception::getFile ( void ) 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 tMyn

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

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

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 tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn

Poikkeustenkäsittely- lohkot tMyn