Sytuacje wyjatkowe.-Pochodzenie

Podczas działania programu mogą się zdarzyć różne nieprzewidziane sytuacje jak np.

Wszystkie te sytuacje powodują zawieszenie programu gdy nie przewidzimy odpowiedniej ich obsługi.

Pochodzenie cd

Rodzaje

NullPointerException,

ClassCastException, IllegalThreadStateException,

ArrayOutOlBoundsException

Obsługa - ogólnie

0x01 graphic

0x01 graphic

Obsługa - wyrażenia

Generowanie wyjątku

public lass WywolajWyjatek {

static public void main (String args []) throws Exception {

Liczba liczba = new Liczba ();

Liczba.dzile (1);

}}

calss Liczba {

int m_i =10;

int dziel (float i ) throws Exception {

if (i/2 !=0) throw new Exception („Liczba parzysta”);

if (i==0) throw new Exception („Dzielenie przez 0 !”);

return (int) (m_i/i);

}}

Obsługa - przykład

Kolejność obsługi bloków wyjątku

Definiowanie klas wyjątków

class NaszWyjatek extends Exception {

NaszWyjatek ()

{this („”); }

NaszWyjatek (String g) {

Super („ Nic się nie stało to tylko:” +”NaszWyjatek); } }

Obsługa wielu wyjątków

class BrakWolnychMiejsc extends Exception {…}

class BrakRezerwacji extends BrakWolnychMiejsc {…}

Wyjątek

Try {…}

catch (Exception e)

{…}

catch (B rak Rezerwacja br)

{…}

catch (BrakWolnychMiejsc bwm)

{…}

Wyjatek typu BrakRezerwacji i BrakWolnychMiejsc nigdy nie zostałyby obsłużone w bloku catch do tego przeznaczonym ale zawsze w bloku catch (Exceptione e).