[問題] 關於try-catch一問?

看板java作者 (千里之外)時間12年前 (2011/08/28 11:28), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
請問在catch{}內可以呼叫外部類別內的參數嗎?? 如下.. ----------------------- class CenterException extends Exception{ } class OutException extends Exception{ } class InException extends Exception{ } class CCircle{ public double radius=10.0; public double x1; //設定測試點座標(x1,y1) public double y1; public double x2; //設定圓心(x2.y2) public double y2; double dist = Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));//計算點(x1,y1)離圓心(x2,y2)的距離 public CCircle(double a, double b, double c, double d){ x1=a; //(x1,y1)=(a,b) y1=b; x2=c; //(x1,y2)=(c,d) y2=c; } public void check() throws CenterException,OutException,InException{ if(dist==0){ throw new CenterException(); } else if(0<dist && dist<radius){ throw new InException(); } else if(radius<dist){ throw new OutException(); } } } public class ex13_14{ public static void main(String[] args){ try{ System.out.println("/* output---------------------------------"); CCircle cir = new CCircle(5.8,2.1,5.8,2.1); cir.check(); } catch(CenterException e){ System.out.println("(5.8,2.1)在半徑10.0,圓心(5.8,2.1)的圓心上"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 問題在此,我想用cir呼叫class CCircle內的資料成員,但不被允許.. 請問有什麼方法能在catch內呼叫嗎?? } catch(OutException e){ } catch(InException e){ } System.out.println("-----------------------------------------*/"); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.26.130.14

08/28 11:55, , 1F
你可以把資料放在錯誤物件裡面 還有你的CCircle的y2錯了
08/28 11:55, 1F

08/28 13:18, , 2F
我覺得,你的問題出在「域」這個地方沒弄清楚,就是大括弧
08/28 13:18, 2F

08/28 13:21, , 3F
那個東西的正式名稱叫什麼我不清楚,但在使用上,就是 { }
08/28 13:21, 3F

08/28 13:23, , 4F
差不多就是域吧XD scope
08/28 13:23, 4F

08/28 13:27, , 5F
作用域 作用域限定符
08/28 13:27, 5F

08/28 17:10, , 6F
在try{}內宣告的cir是一個區域變數 離開後括號後就失效了
08/28 17:10, 6F
文章代碼(AID): #1EMRNxrM (java)