Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

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

Samankaltaiset esitykset


Esitys aiheesta: "Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw."— Esityksen transkriptio:

1 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.

2 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ää.

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

4 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ä.

5 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.

6 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.

7 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.

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

9 Poikkeustenkäsittely- lohkot tMyn9

10 Poikkeustenkäsittely- lohkot tMyn10

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

12 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 } ?>

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

14 Poikkeustenkäsittely- lohkot tMyn14

15 Poikkeustenkäsittely- lohkot tMyn15

16 Poikkeustenkäsittely- lohkot tMyn16

17 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.

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

19 Poikkeustenkäsittely- lohkot tMyn19

20 Poikkeustenkäsittely- lohkot tMyn20

21 Poikkeustenkäsittely- lohkot tMyn21

22 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.

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

24 Poikkeustenkäsittely- lohkot tMyn24

25 Poikkeustenkäsittely- lohkot tMyn25

26 Poikkeustenkäsittely- lohkot tMyn26

27 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.

28 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()):

29 Poikkeustenkäsittely- lohkot tMyn29

30 Poikkeustenkäsittely- lohkot tMyn30

31 Poikkeustenkäsittely- lohkot tMyn31

32 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.

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

34 Poikkeustenkäsittely- lohkot tMyn34

35 Poikkeustenkäsittely- lohkot tMyn35

36 Poikkeustenkäsittely- lohkot tMyn36

37 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.

38 Poikkeustenkäsittely- lohkot tMyn38

39 Poikkeustenkäsittely- lohkot tMyn39

40 Poikkeustenkäsittely- lohkot tMyn40

41 Poikkeustenkäsittely- lohkot tMyn41

42 Poikkeustenkäsittely- lohkot tMyn42

43 Poikkeustenkäsittely- lohkot tMyn43

44 Poikkeustenkäsittely- lohkot tMyn44

45 Poikkeustenkäsittely- lohkot tMyn45


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

Samankaltaiset esitykset


Iklan oleh Google