public class ych { public class r? { private double radius; public void g(double r) throws f { if(radius<0) { throw new f(r); } else { radius=r; } }} public class f extends Exception { double radius; ? f(double r) ? { ? radius=r; ? } ? public String toString() ? { ? return "radius"+this.radius+"r"; ? } ?? }public static void main(String[] args) { r b=new r();? ? ?try{? ? ?b.g(-2);? ? ?}? ? ?catch(f e){? ? ?System.out.println(""+e.toString()+"");? ? ?}? }}/*Exception in thread "main" java.lang.Error: Unresolved compilation problem:? at ych.main(ych.java:32)*/
2 回答
已采納

慕粉3291149
TA貢獻(xiàn)71條經(jīng)驗(yàn) 獲得超52個(gè)贊
第一: ?你的main方法是靜態(tài)方法,靜態(tài)方法只能調(diào)用靜態(tài)變量,很顯然你的R類并不是靜態(tài)的,所以你要先將R類設(shè)置為static
第二: 改了之后你的程序也是沒(méi)有結(jié)果的,你的R類中radius沒(méi)有初始化,系統(tǒng)默認(rèn)初始化為0,所以o肯定不會(huì)小于0,所以b.g(-2)不管你傳進(jìn)去的參數(shù)是多少,都不會(huì)拋出異常,更不會(huì)輸出
添加回答
舉報(bào)
0/150
提交
取消