Professional Documents
Culture Documents
Chap 9
Chap 9
!
'0''g0#0
"78/4'9"+ "%8 :;"1'(<""='4#,11'(C/61'(.,51'(1,+C2/WA5-#'59">'?'.'@'
<""='#'& %B 1%$B @C2/61,+1'(.,51'(1,+C2/WA5-#'5 %B1='4"5G@29"NO/LA+'$='&,6B %B
9I29"1'(.,51'(1,+C2/WA5-#'57/='&,B6 try, catch <# finally /LA+'$11'(
.,51'(1,+C2/WA5-#'5 <#D/" 2'$C/6+ .:;"1'(<""='1'(&(2'6#'&:(>
C2/WA5-#'5CS8"0'940H
! g0#0
!:(<1(0>'?'.'@'/'.1A5C2/WA5-#'5}bXCS8"9"C,8"D/"1'((,"!:(<1(0
!5$ C%B 2/WA5-#'54#H'"%8.G0H&'0'(*D(@.&/+G529"C,8"D/"1'(/0G-#E!:(<1(0 D,@/$H'6
IH"='&,6B
offset = x/n;
&='4(,+D,@<:( 0%B %I"A5C2/0M#:;" int %BI7B/ offset, x <# n .:;"='&,B6 %B
&'0'(*/0G-#EWH'"G52 <DH*'2 H'C/6 n :;")M"$E !:(<1(0"%.8 1A5C2/WA5-#'5CS8"9"
C,8"D/"1'((,"!:(<1(0 RSB6!:(<1(0>'?'.'@'.D(@.&/+-+C2/WA5-#'59"1'(4'(52@$
.='"@"DK0)M"$E<#.&H6C2/WA5-#'5 bX %B1A5CS8"1#,+0'
!:(<1(0>'?'.'@'<+H6C2/WA5-#'5 %B/'.1A5CS8"C(,"!:(<1(0:;"&/6:(>
7/
} :;"C2/WA5-#'5 %BG0H&'0'(*<12GC<#.,51'(G52 IH" Virtual
MemoryError <# OutOfMemoryError :;"D2" ('.G0H1#H'@*S6
} "7B/6.'1} :;"C2/WA5-#'5 %B('G0H&'0'(*C%$"!:(<1(0-7B/<12GC
<#.,51'(G52
}bX :;"C2/WA5-#'5 %B&'0'(*<12GC<#.,51'(G52 IH" C2/WA5-#'5
.'11'(:5GJ#E %BG0H0%/$MH9"G5(K1 /(%B (FileNotFoundException)
4(7/C2/WA5-#'5.'11'(/2'6/A640'$#CC/6&0'IA1C/6/($E %BG0H*M1D2/6 7/
G0HG520%/$MH.(A6 (ArrayIndexOutOfBoundsException)
C2/WA5-#'59">'?'.'@'.1='4"5:;"//:.KC/6#'&DH'6F0'11@H'41&A+#'&
!5$0%#='5,+1'(&7+ /55,6<&569"(M: %B sQP RSB6#'&C/6C2/WA5-#'54#H'"%.8 &7+ /50'.'1
#'&ThrowableRSB6:;"#'&('1
! MkGJSCANI
#'& %BI7B/ Exception :;"#'& %B1='4"59" NO -7B/(+3C2/WA5-#'5 %B
1A5CS8"9"C(,"!:(<1(0>'?'.'@' }bX<+H6//1:;"&/6:(> 7/
PQ RuntimeException :;"C2/WA5-#'5 %B/'.4#%1#%$B 6G524'10%1'(C%$"
!:(<1(0 %B*M1D2/6 D,@/$H'6IH" ArrayIndexOutOfBoundsException
!
A try..catch
>'?'.'@'0%%$E @A(E5 try %B:;"='&,B6 9%B I29"1'(.,51'(1,+0L/54(7/='&,B6 %B/'.
1A5C2/WA5-#'5RSB6.&H6//:.K:(> }bX9"C(,"!:(<1(0%$E@A(E5 try.0%
I35='&,6B /$MH>'$9"+#K/1!5$0%(:M <++5,6"%8
try {
[statements]
}
catch(ExceptionType argumentName){
[statements]
}
5!%W##,-LE G%B 52.'11'((,"!:(<1(0 %BsQ
! '0''g0#0&#+C
!:(<1(0>'?'.'@'&'0'(*.0%I35='&,B6C/6+#K/1 catch G520'11@H'4"SB6I35
&='4(,+9"<DH#+#K/1='&,6B try !5$ I%B "A5C/6//:.K:(> }bX %B/$MH9"I35='&,6B
C/6+#K/1 catch .D2/6(%$6D'0#='5,+1'(&7+ /5 !:(<1(0 %B sQc <&56D,@/$H'61'(
.,51'(1,+C2/WA5-#'50'11@H'4"SB6:(> !5$0%I35='&,6B 9"+#K/1 catch &/6I35-7/B
.,51'(1,+C2/WA5-#'5&/6I"A57/ ArithmeticException<#ArrayIndexOutOf
BoundsException !:(<1(0"%. 8 (,+
WH'" '6XVRSB6.:;"D,@
#C 0%B I% "A5C2/0M#:;" String<#2@.S6.*M1<:#69420I% "A5C2/0M#:;"intRSB64'1C2/0M#:;"
.='"@"DK0)M"$E1.K ='9421A5C2/WA5-#'5I"A5 ArithmeticException CS8"G52 !5$
!:(<1(0.C2'00' ='I35='&,B69"+#K/1 catch %BD(@..,+//:.KI"A55,61#H'@ <#
!:(<1(0..,51'(1,+C2/WA5-#'5I"A5 NumberFormatException *2'
%B(,+
WH'" '6 XV G0H9IHC2/@'0 %B<:#6:;"D,@#C.='"@"DK0G52 !5$!:(<1(0.C2'0
0' ='I35='&,6B 9"+#K/1 catch %BD(@..,+//:.KI"A5 NumberFormatException
!5$0%W##,-LEC/6!:(<1(05,6D,@/$H'6 <%B &569"(M: %BsQu
9"1(% %B0C% 2/WA5-#'51A5CS8" >'?'.'@'.-A.'('@H':;"C2/WA5-#'5I"A595 RSB6
1'( %B..,51'(1,+//:.K:(> }bX ",8".-A.'('.'1#'& 0%B %1'(&7+ /5D'0
#='5,+I,8" ,86"%8 ('&'0'(*..,51'(1,+//:.K:(> }bX !5$9I2#'& %B :;"
X C/6//:.K",8"G52 /' AIH"//:.KI"A5 FileNotFoundException
&'0'(*.,51'(G52!5$9I2#'& IOException 4(7/ Exception < "G52"7B/6.'1#'&
FileNotFoundException &7+ /50'.'1#'& IOException RSB6&7+ /50'.'1
#'&Exception/%1I,8"4"SB6
("' !"D,@/$H'61'(.,51'(1,+C2/WA5-#'50'11@H'4"SB6:(>
public class ExceptionHandlingDemoV2 {
public static void main(String args[]) {
try {
int i = Integer.parseInt(args[0]);
System.out.println(4 / i);
} catch(ArithmeticException ex) {
System.out.println(ex.toString());
} catch(NumberFormatException ex) {
System.out.println("Invalid numeric format");
}
}
}
5!,W##,-LE G%B 52.'11'((,"!:(<1(0 %B sQc
>'?'.'@'1='4"5942I35='&,B69"+#K/1 catch .D2/6(%$6//:.KC/6#'&
:(> Exception D'0#='5,+1'(&7+ /5 D,@/$H'6IH" !:(<1(0 %B sQc *S6<02@H'.0%
#'&:(> }bX %B.D(@..,+&/6I"A5<DH"7B/6.'1#'& ,86&/6DH'61K&+7 /50'.'1
RunTimeException <#/$MH9"#='5,+I,8"5%$@1,".S6&'0'(* %B.&#,+I35='&,B69"+#K/1
catch ,86&/6G52 <DH9"1(%C/6!:(<1(0 %B sQu I35='&,B69"+#K/1 catch %B..,51'(1,+
#'& RunTimeException /$MH#='5,+1H/"4"2'I35='&,B69"+#K/1 catch %B..,51'(1,+
#'& ArrayIndexOutOfBoundsException 5,6",8"!:(<1(0"%8.6S G0H0!% /1'& %B. ='
I35='&,6B &%B /6G52"7B/6.'1#'& ArrayIndexOutOfBoundsException &7+ /50'
.'1#'&RunTimeException .S6 ='942!:(<1(0"%8G0H&'0'(*/0G-#EWH'"G52
! #*'finally
>'?'.'@'0%%$E @A(E5 finally %B.0%I35='&,B6/$MH9"+#K/1-7B/(+3942!:(<1(0 ='
I35='&,6B 5,61#H'@4#,6.'1&A8"&351'( ='6'"C/6I35='&,B69"+#K/1 try 4(7/ catch!:(<1(0
%B sQt <&56D,@/$H'61'(1='4"5I35='&,B69"+#K/1 finally RSB6!:(<1(0"%.8 942W##,-LE5,6
<&569"(M: %BsQt
>'?'.'@'. ='I35='&,B69"+#K/1 finally &0/ <02@H'.0%='&,B6 return 9"
+#K/1 try4(7/ catch1H/"1KD'01(%5%$@ %B.G0H ='I35='&,B69"+#K/1 finally7/0%
='&,B6 System.exit(); -7B/ %B.//1.'1!:(<1(0 !:(<1(0 %B sQ
<&56D,@/$H'6 0%B %
='&,B6return /$MH1H/"I35='&,6B 9"+#K/1finally!5$!:(<1(0"%8.G52W##,-LE5,6(M: %BsQ
("' 5!- D,@/$H'61'(1='4"5I35='&,B69"+#K/1finally
5!.W##,-LE G%B 52.'11'((,"!:(<1(0 %BsQ
D,@/$H'6IH"
publicvoid openFile(Strings)throwsFileNotFoundException {
}
0L/595F&'0'(* .%B .,51'(1,+//:.K:(> }bX!5$9I2='&,6B throws
G520'11@H'4"SB6I"A5D,@/$H'6IH"
public void openFile(String s)throws FileNotFoundException,
UnknownHostException {
}
1(% %B0%1'(9I2='&,B6 throws <#2@&H6DH/9420L/5/7B"F %B (%$19I2:;"D,@.,51'(1,+
//:.K:(> }bX 5,61#H'@G:(7B/$F <DH*2'0L/5 %BI7B/ main() RSB6(%$19I2
0L/5&35 2'$ 9%B I2='&,6B throws G0H0%1'(.,51'(1,+//:.K:(> }bX 5,61#H'@
!:(<1(0.1A5C2/WA5-#'59"C,8"D/"1'((,"!:(<1(007B/0%C/2 WA5-#'5C/6//:.K:(>
}bX5,61#H'@1A5CS8"D,@/$H'6IH"!:(<1(0 %BsQvRSB6W##,-LE %BG52.'11'((,":;"5,6<&56
9"(M: %BsQv
5!3 W##,-LE %BG52.'11'((,"!:(<1(0 %BsQv
('&'0'(* %B.9I2='&,6B throws 9"0L/5 %BI7B/ main() G52 <DH.:;"1'(
$1#A11'(.,51'(95F1,+C2/WA5-#'5 ,86405 %B/'.1A5CS8" "/1.'1"%8>'?'.'@'G0HG52
1='4"5942('.D2/6C%$"='&,6B 9"1'(.,51'(1,+0L/5 %B/'.&H6C2/WA5-#'5C/6//:.K
:(> RuntimeException <DH.1='4"5G@2|-'0L/5 %B/'.&H6C2/WA5-#'5C/6
//:.K:(> IOException
0L/5 0%B %='&,6B throws .0%W#DH/1'(&7+ /5 ,86"%8 "7B/6.'11C/61'(1='4"5
0L/5<++ VV .G0H/"3n'D9420%1'(.,51'(//:.K:(> }bX !5$9I2
='&,B6 throws 0'1I"A51@H' %B0L/55A0.,51'(/$MH !:(<1(0 %B sQz <#!:(<1(0 %B sQs
<&56D,@/$H'6!:(<1(0 0%B %0L/5<++ VV %B*M1D2/6<#G0H*M1D2/6D'0#='5,+
!5$ %B
x ExceptionType 7/I7B/C/6#'&:(> }bX %BD2/61'(.&(2'6
//:.K!5$0%
&/5#2/61,+ %B(+39"X
X C/6#'&5,61#H'@
"/1.'1"%8='&,6B :(1')0L/5",8".D2/60%='&,B6 throws -7B/1='4"5942='&,B69"
0L/5/7B"F %B (%$19I20L/5"%8D/2 6C%$"='&,B69"1'(.,51'(1,+C2/WA5-#'5"%8 !:(<1(0 %B sQPP
<&56D,@/$H'61'(C%$"#'&FileHandler!5$0%0L/5openFile()RSB6.&H6//:.K
C/6#'& MyOwnException CS8"0'07B/G0H-+GJ#E %B(+3 &H@"!:(<1(0 %B sQP <&56
D,@/$H'6!:(<1(0 %B0%1'(.,51'(1,+C2/WA5-#'55,61#H'@
/&
x C2/5%:(1'(4"SB6C/6>'?'.'@'7/ ('&'0'(*C%$"!:(<1(09420%1'(D(@..,+<#
.,51'(1,+C2/WA5-#'5 %B/'.1A5CS8"G52!5$ %B1'( ='6'"G0HD2/64$35#6
x <00=0 :;"C2/WA5-#'5 %BG0H&'0'(*<12GC<#.,51'(G52 &H@" <u58B1/=7 :;"
C2/WA5-#'5 %B&'0'(*<12GC4(7/.,51'(G52