Java
(3)
Plan
wykª
adu
◮
obsªuga
wyj¡tk
ó
w
◮
w
¡tki
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
s¡
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)
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
oª
ana,
a
dokª
adniej
do
miejs a
wyª
oª
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
oª
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
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
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:
sª
o
w
o
throws
p
o
nazwie
meto
dy
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
oª
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
s¡
pod
klas¡
bazow¡
RuntimeEx eptio
n
W¡tki
◮
w
jzyku
Java
p
rogram
mo»na
zo
rganizo
w
a¢
w
taki
sp
osób,
»eb
y
wyk
onyw
aª
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
W¡tki
p
o
dsta
w
o
w
e
wª
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
s¡
w
nim
wido
zne
na
no
rmalny h
zasada h
(wsp
óª
dzielenie
dany h)
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
y¢
meto
d¡
w
¡tku
(obiektu
rep
rezentuja ego
w
¡tek,
dziedzi z¡ ego
z
klasy
Thread)
lub
meto
d¡
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
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
W¡tki
Meto
dy
interfejsu
Runnable
◮
run()
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