Professional Documents
Culture Documents
Bi 7 - Qun l ngoi l
Ni dung
Ngoi l X l ngoi l
Lp Throwable
u im ca ngoi l
Bi 7 - Qun l ngoi l
Ngoi l
Ngoi l (exception), l li c th pht sinh trong qu trnh thc hin
chng trnh.
Mi ngoi l cng c m hnh ha bi mt i tng thuc lp
Exception.
V d, cc thao tc sau u sinh ngoi l: truy cp mng v tr -1, chia
cho 0.
Bi 7 - Qun l ngoi l
Ngoi l
Khi xy ra ngoi l trong mt phng thc, phng thc to ra mt
ngoi l.
Bi 7 - Qun l ngoi l
Ngoi l
Khi mt ngoi l c nm ra, h thng s tm on m c nhim v
x l ngoi l.
Lp trnh vin cn d kin trc cc ngoi l c th xy ra v cung cp nhng
m x l ph hp.
V d, chng trnh ly d liu ngi dng nhp vo mt JTextField vi k vng
l mt s nguyn dng, nhng ngi dng nhp sai (nhp s m, nhp chui k t...)
on m x l ngoi l c gi l b x l ngoi l (exception
handler).
Bi 7 - Qun l ngoi l
X l ngoi l
B x l ngoi l c th nm
Phng thc nm ngoi l Phng thc khng cha b x l ngoi l Phng thc cha b x l ngoi l
Gi phng thc
b x l ngoi l bng cch ln theo ngn xp cha cc li gi phng thc, xut pht t phng thc nm ngoi l.
Tm b x l ngoi l thch hp
6
Bi 7 - Qun l ngoi l
main()
X l ngoi l
B x l ngoi l c 3 thnh phn
Khi try, (cc) khi catch, khi finally
Khi try cha cc lnh c th sinh ngoi l. Cc khi catch i ngay sau khi try cha cc lnh x l ngoi l.
V khi try c th sinh nhiu kiu ngoi l khc nhau nn c th c nhiu khi catch.
Khi finally cha cc lnh lun c thc hin khi thc hin ht cc lnh
Bi 7 - Qun l ngoi l
X l ngoi l
Trong chng trnh lit k cc s nguyn t, trng vn bn ch ngi
xyz?
Xy ra ngoi l kiu NumberFormatException
Bi 7 - Qun l ngoi l
X l ngoi l
@Override public void actionPerformed(ActionEvent event) { int n = 0; try { n = Integer.parseInt(nTextField.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(PrimeNumberFrame.this, "Number format error!", "Error", JOptionPane.ERROR_MESSAGE); return; } String primes = pn.listPrimeNumbers(n); resultTextArea.setText(primes); Bi 7 - Qun l ngoi l }
X l ngoi l
i khi phng thc cha on m c th nm ngoi l khng thc
hin x l ngoi l.
Khi , n cn c khai bo cc kiu ngoi l c kh nng sinh ra
}
10
Bi 7 - Qun l ngoi l
X l ngoi l
public void useWriteList() { try { writeList();
} catch (IOException e) {
// do something
X l ngoi l IOException
} catch (ArrayIndexOutOfBoundsException e) {
// do something
} } X l ngoi l ArrayIndexOutOfBoundsException
11
Bi 7 - Qun l ngoi l
Nm ngoi l
Mi m ngun u c th nm ngoi l bng lnh throw. Java cung cp nhiu lp ngoi l khc nhau, tt c u l lp con ca
lp Throwable.
C php: throw someThrowableObject; Trong , someThrowableObject l i tng thuc mt lp con ca
lp Throwable.
12
Bi 7 - Qun l ngoi l
Lp Throwable
Object
Throwable
Error
Exception RuntimeException
NullPointerException, ArithmeticException
IllegalAccessException, NegativeArraySizeException
13
Bi 7 - Qun l ngoi l
u im ca ngoi l
Vic s dng ngoi l c mt s u im sau: Tch cc on m x l li ra khi cc on m thng thng.
14
Bi 7 - Qun l ngoi l