-./, 2005 1 11 2 29 0 Thread;VA š]mšr ºÕ LAlr try... catchµ~ºõ q q l l ^ 1 ÝÞßàáâ 1.1 ãèêæçðöùò ouyºõlé{uw] lrb 4OYGI~2x System.out.println(...) š_ ~x )~){zb`a l]35<~ÿ{z = jpwf7g;xc rsl q~ O Java =[C Xµy- ò;VAZ E~:SG?T;W4=P[J xµ 2n \~ó ~xh W]w 2n yn] r 4OYGI appletviewer xglr O appletviewer cglrã?6 = j (D = Jb3uw]{]yD 'fx kš{]fz) ry_ ~4OYGI +wˆ ^ import java.applet.applet; import java.awt.*; public class R9Sample1 extends Applet { int[] x = new int[101]; int[] y = new int[101]; public void init() { for(int i = 0; i <= 100; ++i) { double theta = 0.01 * 2 * Math.PI * i; x[i] = (int)(100*math.cos(theta)) + 100; y[i] = (int)(100*math.sin(2*theta)) + 100; public void paint(graphics g) { for(int i = 0; i <= 100; ++i) { g.drawline(x[i-1], y[i-1], x[i], y[i]); // h~4oygi NV6>x+ y VbtŒ y= j {] qhx Java=[C X W]wˆ y 1~ ^{= b w] o h + y 7itŒitŒ +_ b Òf ArrayIndexOutOfBoundsExceptionµy\ ~x z^ p R (array) ~ (index) bs# (bounds) 3_w] (out)µ l]ykš ~2 + y R9Sample1 y]^;va ~ paint y]^rcgj~2x M35Xx]^y R9Sample1.java y]^m35x~ 16 2Ösy w] v ~ 2xn qhxq~'g e+ y i b 0 ~yc x[i-1] Za pr x ~ -1 9Ö lwl ] h b_ $uw] ~syca "le for(int i = 1; ±µyn csur~xn \ h^%+6 2a{] lw 8V RGB @~+J ] w`eyzh _$]b\ aün 0 hybxc 1
1: Java =[C X~= 1.2 uv yh x wür ^ j k { 8V µbcc yq~hy =nrgb @b Java=[C X{z we h ~8V Java x QYµy- ao uwe%9 w] qlw j 8l {f QYbcc yoz<vq Ml q~&b= j ~x~ ^{RGB @ Ö n fs hhx QYbq#lryc q «fžšwln ^ OZ<VQ ]w`f 8V bccryc OZ <VQbqhxž uwl {] ^ xc ~x q~jk [ ^ q~rš QY «fžš rš~/dx\ try Dy]^ ~ š^ (Ì9 try D D... (1) catch(qy;vaô F ) { D... (2) y]^) lw]w 7~ (1) ~@C \ D~{ ~2xq#lrQY «fžš hybxc (Ì9 QY bcc y 2 (2) ~D~{ @S[Oµlw h~@c~d 7. x 2lr try DÀÌ~Lb uw ~D QYbcc{f (1) ~2~DÀ@ 2j b (2) ~D 2j {]hy { v (2)~@C 8V L½Ú~g8y]^hy { 1.3 uväéå hhx QY;VAµ8V ~ªP =n ~xb Throwable --- n w~qy 8V ~ÀÌ Error --- UA>*o{8V ClassFromatError ---.class M35XbFx\ NoClassDefFoundError ---.class M35Xb+va {] Exception --- QY9{xciyÀr RuntimeException --- 2 8V Àr NumberFormatException --- D Rb ÿ~) {uw{] NullPointerException --- null ÿ ÍlwRCGJ - ^ylr IndexOutOfBoundsException --- pr~ s#y 4;BAlr \ b ~ ^ XÁ/Ä (* šuw) CPj w] 2
IOException --- n O8V IntrruptedException --- % 7ž2 \ 4ˆbccr IllegalAccessException --- ;VA~lØ >" 4;BAl ^ylr 6«fžŠwLn ~ Exception!&{~x QY;VAÔµylw Exception 8n hybë] rsl \ j8~qysfe ]rf ~ ^ try D n lwš^hybxc... A... B... catch(numberformatexception e) { (1) ÿ~) b_$uw]r3~l... C catch(exception e) { (2) q~ên w~qy~l hhx B x NumberFormatException QYbccr3 (1) ~"1 \ L 2n b q!y~qy (2) ~"1xLn A C lå~ try D~s#Y{~x n w~qy (2) xln 1 1.4 uvõúëøñîïíôðæt QY Ln µ(ì9{løylw ~ ^{ ~b1_ ( g8 a{] û QYbccw Ó lw»~lƒˆr]3( g8 a{ew ] ^û{8v RGB @ = n System.err.println(...) xrgb @ On ] {` System.err.println() System.out.println() y hùsb 8V = ½Ú~ OAIW Q {uw] QY;VAn wb$6 uw] RCGJ printstacktrace() - lwl]8v & = n h x8v b g9 = j 3 3 9Ö~ printstacktrace() = b2 w]r x 8V Ln ^û{qñ +wˆ ^ import java.io.*; public class R9Sample2 { public static void main(string[] args) { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while(true) { System.out.print("x> "); String s = in.readline(); if(s.equals("")) break; int x = (new Integer(s)).intValue(); System.out.print("y> "); int y = (new Integer(in.readLine())).intValue(); 1 Exception š Ž { ƒ ª xxš{œx {? Ž ² Ž yœ µ { Š¹zˆxŒx³» ŒŽ w ~ŒxŠ z ½¾ ÁÄÀಠ¼µŽ Š «º Å x³ Œ Exception š ˆƒ š ñ Ÿ Ž x Š Š¹z ˆ ž ŠxyŽ ˆ~ x 3
System.out.println("x + y = " + (x+y)); catch(exception e) { System.err.println("Oops! some error occured..."); e.printstacktrace(); System.err.println("Continue..."); h~3 ry_ no x{] ~ n y NumberFormatException bq#n b q X O~lÅx catch x«fžšw] ~xoz<vq8v x Mpo ~H D n hybxc g]w] Ù +wˆ ^ % java R9Sample2 x> 3 y> 5 x + y = 8 x> 3 OK y> a o]h D Oops! some error occured... java.lang.numberformatexception: a at java.lang.integer.parseint(integer.java:426) at java.lang.integer.<init>(integer.java:567) at R9Sample2.main(R9Sample2.java:13) Continue... x> b o]h D Oops! some error occured... java.lang.numberformatexception: b Continue... x> 1 y> 2 x + y = 3 at java.lang.integer.parseint(integer.java:426) at java.lang.integer.<init>(integer.java:567) at R9Sample2.main(R9Sample2.java:11) OK x> [ret] x`l ] % h~ ^ QY xln hyx(a8v b\uw o Ç2n hybxc 1.5 uvõ ìó hh xqy «fžš S a surb QY Cxg hy xc ry_ Llw]w"le{] Î `uryœur qhx(amr rn QY gwzhae~x yšwllrjbc ] xc ~b?6{~x q~ ^{ CxQY g N] QY g throw D š^ throw ; rsl µqy;va (Throwable!&) ~9N@7;I Hn ~x{f { {] y \_o ~ ^{)x Exception9N@7;I g ]s ^ ( Cx uy {;VA ¾ s b 8uw ]b) throw new Exception(" Œ b o] "); r»~ catch ¹x~L ~ ~ 5)lw`h^ 4
%ý«fžšw8v RGB @ nb j YÅxLlw ^ršhmqy 6g4n h~3 ~ ^{cj { s ^... catch(exception e) { System.err.println("..."); throw e; // g{`n 1.6 throws ÇÈ CxgrQYh x6 catch x«fžš ]b C~RCGJlx«fžŠo YÅ (q~rcgj - lrå)x«fžš 3 RCGJ8d~Òf@C... RCGJÔ (LVRD±) throws QY;VAÔ,... { ~)x¼,lw`a{f { {] v Ÿh h ~QY g n µy ŠÕ a lw`a{]y q~ RCGJ - Åx ~:µbxc{]~x- xˆr 0 {]QYbg w ue y]urhy { a x\ throws ¹ ¼, q~rcgj~2x throwxqy g *o!b\ 3sfx{e q~rcgj ~2xQYbq#n ^{Â8 2uw {`avq~qy catchl{]3 ;Ûx\ y]^~ catchl {aurqyq~ RCGJ- lå uw2ehy { a h x ^ e Ð 1 U~yca ~` m{]~mbt uysftf hy { v public static void main(string[] args) throws Exception {... y]^~ h~2xqy ( in.readline() - y IOException bg hyb\ ) bq#lwq I _{ ]~xyå q b n y]^hy þuw] ~sur rsl h~bæ QYµb\uw Error y RuntimeException` q ~ È~QY v]w throws¹x þ {ew ] y]^~ h ~QY\ Ž xq#li rš ]t]tþuw] yïfnd a x \ \y 4KR?U[x Thread.sleep() - yh try...catchx# x]rb h h~rcgj InterruptedException(\ 4ˆQY) Hny¼,j w] ~x q «fžšwll{]y=[l5v wl ^a {~sur 5