Planwykªadu
◮
obsªuga wyj¡tków
◮
w¡tki
◮
sytua ja wyj¡tkowa (ang. ex eption) toproblem
uniemo»liwiaj¡ y wykonanie danejmetodylubbloku
◮
wyj¡tki s¡naj z± ieju»ywane do obsªugisytua ji awaryjny h
◮
na me hanizmobsªugiwyj¡tków skªadaj¡ si dwie opera je
wyrzu enie wyj¡tku przekazanie poza aktualny kontekst
odpowiedniegoobiektuwyj¡tku
obsªuga wyj¡tku prze hwy enie wyj¡tkuiwykonaniepewny h
zynno± i (pro edura obsªugi wyj¡tku)
◮
w przypadku wyrzu eniawyj¡tkusterowanie przenosi si do
fragmentu koduodpowiedzialnego zaobsªug danegowyj¡tku
me hanizm
◮
wyrzu enie wyj¡tkuw metodzie f ko« zy dziaªanie metodyf
◮
sterowanie przenosi sido metodyf
′
,wktórejmetodaf
zostaªawywoªana, adokªadniejdo miejs awyªoªaniametodyf
◮
je±limiejs eto jestwblokuprób (try),nastpujeobsªuga
wyj¡tku
◮
je±linie,wyj¡tek jest przekazywany dalejdo metodyf
′′
,w
którejzostaªawywoªana metoda f
′
◮
i.t.d.
◮
je±li»adna zkolejny hmetodna drodze wyj¡tkunie obsªu»y
przykªady
patrz plikWyjatki0.java
patrz plikWyjatki1.java
patrz plikWyjatki2.java
zasadykorzystaniazme hanizmuobsªugiwyj¡tków
◮
okre±lenieobszaru, gdziespodziewane jestwyst¡pienie
wyj¡tku: bloktry
◮
okre±leniefragmentu koduodpowiadaj¡ ego za obsªug
wyj¡tku: blok at h
◮
wyrzu enie wyj¡tku: instruk ja throw
◮
wskazanie(obowowi¡zkowe), »edana metodamo»e wyrzu a¢
.d.
◮
zdeniowanie wyj¡tkuodbywa si poprzez dziedzi zeniepo
istniej¡ ym typiewyj¡tków wywodz¡ ymsi z typu
Throwable;naj z± iejwykorzystywanym reprezentantem tego
typujestklasaEx eption
◮
pod zasobsªugiwyj¡tków mo»liwe jestu»ywanie metod z
klasy Throwable (np. getMessage()zwra aj¡ ej komunikat
przenoszony przezwyj¡tek).
◮
przykªadowe wyj¡tki standardowe (predeniowane) w Javie
◮
NullPointerEx eption-wyj¡tekzgªaszanyautomaty znie
pod zasodwoªaniadoniezaini jowanejreferen ji,
◮
ArrayIndexOutOfBoundsEx eptionprzekro zenie
rozmiarutabli y
◮
wyj¡tki automaty znie zgªaszane przez Jav
◮
w jzyku Java program mo»na zorganizowa¢ wtakisposób,
»eby wykonywaª kilka zynno± ijedno ze±nie
◮
kod odpowiedzialny zawykonywanie ka»dejzty h zynno± i
stanowi tre±¢jednego w¡tku
◮
podstawowewªasno± i
◮
nad w¡tkamipanujemy zpoziomu programu,nie z poziomu
systemu opera yjnego
◮
nazwy spozaw¡tku s¡w nimwido znena normalny h
podstawoweinforma je
◮
w¡tekjestklas¡dziedzi z¡ ¡z klasyThread (z pakietu
java.lang)
◮
w¡tekuru hamia metoda start()
◮
dziaªanie w¡tku deniuje metodarun(); metoda tamo»e by¢
metod¡w¡tku(obiektu reprezentuja ego w¡tek,
dziedzi z¡ ego z klasyThread)lubmetod¡innego obiektu-
implementuj¡ egointerfejsRunnable, do którego referen j
przekazujemy w¡tkowi
◮
instruk ja returnwykonana wewn¡trz metodyrun() ko« zy
wybranemetodyklasyThread
◮
Thread(String s)- konstruktorz nadaniem nazwy
◮
run()
◮
start()
◮
getName() - zwra anazw
◮
sleep(long li zbamilisekund) -wstrzymanie wykonania
◮
stop()- zatrzymanie
◮
suspend() - zawieszeniedziaªania
◮
resume()- wznowieniedziaªaniazawieszonego w¡tku
◮
yield() - oddanie pozostaªej z± i przydzielonego przez
MetodyinterfejsuRunnable
◮
run()
przykªady
◮
implementa jaw¡tkuprzezzdeniowanie klasypotomnej od
Thread
patrzplik TestWatku.java
◮
implementa jaw¡tkuprzezimplementa j interfejsuRunnable