Академический Документы
Профессиональный Документы
Культура Документы
Ni dung
Gii thiu. Cch x l li truyn thng. X l ngoi l (Exception) trong java u im ca nm bt ngoi l Mt s lp ngoi l Kim sot ngoi l Ngoi l do ngi dng to Lan truyn ngoi l
Gii thiu
Mi on chng trnh u tim n kh nng sinh li Li ch quan: do lp trnh sai Li khch quan: do d liu, do trng thi ca h thng Li c 2 loi. ? Ngoi l (Exception): cc trng hp hot ng khng bnh thng
V d (1)
IF B IS ZERO GO TO ERROR C = A/B PRINT C GO TO EXIT ERROR: DISPLAY DIVISION BY ZERO EXIT: END
5
V d (2)
int devide(int num, int denom, int& error) { if (0 != denom){ error = 0; return num/denom; } else { error = 1; return 0; } }
6
u im ca nm bt ngoi l
D s dng D dng chuyn iu khin n ni c kh nng x l ngoi l C th nm nhiu loi ngoi l Tch x l ngoi l khi thut ton Tch m x l S dng c php khc Khng b st ngoi l (nm t ng) Chng trnh d c hn, an ton hn
9
10
Mt s lp ngoi l (1)
Lp Throwable C mt bin String lu thng tin chi tit v ngoi l xy ra Mt s phng thc c bn Throwable(String s); //To mt ngoi l c tn l s. String getMessage(); //Ly thng tin v ngoi l void printStackTrace(); //In ra tt c cc thng tin lin quan n ngoi l
11
Mt s lp ngoi l (2)
Lp Exception C nhiu ngoi l thuc lp con ca Exception. Ngi dng c th to ra cc ngoi l k tha t Exception. Lp Error Ch nhng li nghim trng v khng d on trc c nh ThreadDead, LinkageError, VirtualMachineError
12
Mt s lp ngoi l (3)
RuntimeException: Ch cc ngoi l c th xy ra khi JVM thc thi chng trnh NullPointException: con tr null OutOfMemoryException: ht b nh ArithmeticException: li ton hc, li chia khng ClassCastException: li p kiu ArrayIndexOutOfBoundsException: li vt qu ch s mng ...
13
Cc loi ngoi l
Java phn bit hai loi ngoi l l ngoi l cn kim tra v ngoi l khng cn kim tra Ngoi l unchecked L cc ngoi l khng bt buc phi kim tra. Gm RuntimeException, Error v cc lp con ca chng. Ngoi l checked L cc ngoi l bt buc phi c kim tra. Gm cc ngoi l cn li.
14
19
20
Nm ngoi l
Khi c li phng thc s nm ra mt exception Vic kim sot exception gip chng trnh kim sot c nhng trng hp ngoi l v x l li. Dng t kha throws ch nh nhng loi exception m phng thc c th nm ra. <tin t> <tn phng thc>(<i s>) throws <cc exceptions>
23
Nm ngoi l
Trong khi catch, ta c th khng x l trc tip ngoi l m li nm li ngoi l cho ni khc x l. catch (IOException e) { throw e; } Ch : Trong trng hp trn, phng thc cha catch phi bt ngoi l hoc khai bo throws cho ngoi l (nu l loi checked).
24
25
26
// file ExampleException.java public class ExampleException { public void copy(String fileName1, String fileName2) throws MyException { if (fileName1.equals(fileName2)) // tung ngoi l throw new MyException("File trung ten"); System.out.println("Copy completed"); }
Nm ngoi l
27
30
Tha k v vn bt ngoi l
try{ // } catch (EOFException e){ // } catch (IOException e){ // } try{ // } catch (IOException e){ // } catch (EOFException e){ // }
ng
Sai
31
Bi tp
1. Vit chng trnh cho php tnh gi tr ca biu thc: A =
5x - y
2x + 7y
Yu cu x l cc ngoi l c th xy ra. 2. Vit chng trnh cho php to mt mng 2 chiu c mxn vi m, n nhp t bn phm. Ci t cc x l ngoi l cn thit.
32
Bi tp
3. 4. Xy dng lp ngoi l DateException cho cc li v ngy thng. Vit chng trnh cho php ngi dng nhp vo ngy, thng nm, nu thng tin ny khng hp l s tung ra mt ngoi l DateException, sau thng bo cho ngi nhp bit v cho php ngi dng nhp li.
33
Hi & p
34