作者spiderman007 (千里之外)
看板java
標題[問題] 關於try-catch一問?
時間Sun Aug 28 11:28:57 2011
請問在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
→ mars90226:你可以把資料放在錯誤物件裡面 還有你的CCircle的y2錯了 08/28 11:55
推 LaPass:我覺得,你的問題出在「域」這個地方沒弄清楚,就是大括弧 08/28 13:18
→ LaPass:那個東西的正式名稱叫什麼我不清楚,但在使用上,就是 { } 08/28 13:21
→ mars90226:差不多就是域吧XD scope 08/28 13:23
→ lachtchlee:作用域 作用域限定符 08/28 13:27
推 ayumi001:在try{}內宣告的cir是一個區域變數 離開後括號後就失效了 08/28 17:10