background image

Java

(3)

Plan

wykª

adu

obsªuga

wyj¡tk

ó

w

w

¡tki

background image

Obsªuga

wyj¡tk

ó

w

(1)

sytua ja

wyj¡tk

o

w

a

(ang.

ex eption)

to

p

roblem

uniemo»liwiaj¡ y

wyk

onanie

danej

meto

dy

lub

bloku

wyj¡tki

naj z± iej

u»yw

ane

do

obsªugi

sytua ji

a

w

a

ryjny h

na

me hanizm

obsªugi

wyj¡tk

ó

w

skª

adaj¡

si

dwie

op

era je

wyrzu enie

wyj¡tku

p

rzek

azanie

p

oza

aktualny

k

ontekst

o

dp

o

wiedniego

obiektu

wyj¡tku

obsªuga

wyj¡tku

p

rze hwy enie

wyj¡tku

i

wyk

onanie

p

ewny h

zynno± i

(p

ro

edura

obsªugi

wyj¡tku)

w

p

rzypadku

wyrzu enia

wyj¡tku

stero

w

anie

p

rzenosi

si

do

fragmentu

k

o

du

o

dp

o

wiedzialnego

za

obsªug

danego

wyj¡tku

(nie

ma

p

o

wrotu

do

miejs a

rzu enia

wyj¡tku)

background image

Obsªuga

wyj¡tk

ó

w

(2)

me hanizm

wyrzu enie

wyj¡tku

w

meto

dzie

f

k

o« zy

dziaª

anie

meto

dy

f

stero

w

anie

p

rzenosi

si

do

meto

dy

f

,

w

któ

rej

meto

da

f

zostaª

a

wyw

ana,

a

dokª

adniej

do

miejs a

wyª

ania

meto

dy

f

je±li

miejs e

to

jest

w

bloku

p

rób

(try),

nastpuje

obsªuga

wyj¡tku

je±li

nie,

wyj¡tek

jest

p

rzek

azyw

any

dalej



do

meto

dy

f

′′

,

w

któ

rej

zostaª

a

wyw

ana

meto

da

f

i.t.d.

je±li

»adna

z

k

olejny h

meto

d

na

dro

dze

wyj¡tku

nie

obsªu»y

go,

wyj¡tek

jest

obsªugiw

any

p

rzez

interp

reter

Javy

background image

Obsªuga

wyj¡tk

ó

w

p

rzykª

ady

patrz

plik

W

yjatki0.java

patrz

plik

W

yjatki1.java

patrz

plik

W

yjatki2.java

patrz

plik

StosT

est.java

background image

Obsªuga

wyj¡tk

ó

w

zasady

k

o

rzystania

z

me hanizmu

obsªugi

wyj¡tk

ó

w

okre±lenie

obsza

ru,

gdzie

sp

o

dziew

ane

jest

wyst¡pienie

wyj¡tku:

blok

try

okre±lenie

fragmentu

k

o

du

o

dp

o

wiadaj¡ ego

za

obsªug

wyj¡tku:

blok

at h

wyrzu enie

wyj¡tku:

instruk

ja

throw

wsk

azanie

(ob

o

w

o

wi¡zk

o

w

e),

»e

dana

meto

da

mo»e

wyrzu a¢

wyj¡tki:



o

w

o

throws

p

o

nazwie

meto

dy

background image

W

yj¡tki

.d.

zdenio

w

anie

wyj¡tku

o

db

yw

a

si

p

op

rzez

dziedzi zenie

p

o

istniej¡ ym

t

ypie

wyj¡tk

ó

w

wyw

o

dz¡ ym

si

z

t

ypu

Throwable;

naj z± iej

wyk

o

rzyst

yw

anym

rep

rezentantem

tego

t

ypu

jest

klasa

Ex eption

p

o

d zas

obsªugi

wyj¡tk

ó

w

mo»liw

e

jest

u»yw

anie

meto

d

z

klasy

Thro

w

able

(np.

getMessage()

zwra aj¡ ej

k

omunik

at

p

rzenoszony

p

rzez

wyj¡tek).

p

rzykª

ado

w

e

wyj¡tki

standa

rdo

w

e

(p

redenio

w

ane)

w

Javie

NullPointerEx e

pti

on

-

wyj¡tek

zgª

aszany

automat

y znie

p

o

d zas

o

dw

ania

do

nie

zaini jo

w

anej

referen ji,

ArrayIndexOutOf

Bou

nd

sEx

e

pt

ion



p

rzekro

zenie

rozmia

ru

tabli y

wyj¡tki

automaty znie

zgªaszane

przez

Jav

zgrupowane

pod

klas¡

bazow¡

RuntimeEx eptio

n

background image

W¡tki

w

jzyku

Java

p

rogram

mo»na

zo

rganizo

w

w

taki

sp

osób,

»eb

y

wyk

onyw

kilk

a

zynno± i

jedno

ze±nie

k

o

d

o

dp

o

wiedzialny

za

wyk

onyw

anie

k

a»dej

z

t

y h

zynno± i

stano

wi

tre±¢

jednego

w

¡tku

p

rogram

mo»e

uru homi¢

wiele

w

¡tk

ó

w

background image

W¡tki

p

o

dsta

w

o

w

e

asno± i

nad

w

¡tk

ami

panujemy

z

p

oziomu

p

rogramu,

nie

z

p

oziomu

systemu

op

era yjnego

nazwy

sp

oza

w

¡tku

w

nim

wido

zne

na

no

rmalny h

zasada h

(wsp

óª

dzielenie

dany h)

background image

W¡tki

p

o

dsta

w

o

w

e

info

rma je

w

¡tek

jest

klas¡

dziedzi z¡ ¡

z

klasy

Thread

(z

pakietu

java.lang)

w

¡tek

uru hamia

meto

da

start()

dziaª

anie

w

¡tku

deniuje

meto

da

run();

meto

da

ta

mo»e

b

meto

w

¡tku

(obiektu

rep

rezentuja ego

w

¡tek,

dziedzi z¡ ego

z

klasy

Thread)

lub

meto

innego

obiektu

-

implementuj¡ ego

interfejs

Runnable,

do

któ

rego

referen j

p

rzek

azujemy

w

¡tk

o

wi

instruk

ja

return

wyk

onana

w

ewn¡trz

meto

dy

run()

k

o« zy

dziaª

anie

w

¡tku

background image

W¡tki

wyb

rane

meto

dy

klasy

Thread

Thread(String

s)

-

k

onstrukto

r

z

nadaniem

nazwy

run()

start()

getName()

-

zwra a

nazw



sleep(long

li zbamilisekund)

-

wstrzymanie

wyk

onania

stop()

-

zatrzymanie

suspend()

-

za

wieszenie

dziaª

ania

resume()

-

wzno

wienie

dziaª

ania

za

wieszonego

w

¡tku

yield()

-

o

ddanie

p

ozostaª

ej

z± i

p

rzydzielonego

p

rzez

system

op

era yjny

kw

antu

zasu

innym

w

¡tk

om

background image

W¡tki

Meto

dy

interfejsu

Runnable

run()

background image

W¡tki

p

rzykª

ady

implementa ja

w

¡tku

p

rzez

zdenio

w

anie

klasy

p

otomnej

o

d

Thread

patrz

plik

T

estW

atku.java

implementa ja

w

¡tku

p

rzez

implementa j

interfejsu

Runnable

patrz

plik

T

estW

atku1.java