此程序用于异常处理,但问题点在 UserException ????
import org.omg.CORBA.UserException;
public class Ch9_3_3 {
class UserException extends Exception {
int data;
public UserException(int d) { data = d; }
public String getMessage() {
return ("Error! You negotiate too much for auction price: " + data);
}
}
public static void main(String[] args) {
try {
for ( int i = 0; i < 5; i++) {
if (i==3) throw new UserException(3);
System.out.println("No. of auction: " + i);
}
}
catch ( UserException ex) {
System.out.println("Exception note: " + ex.getMessage());
System.out.println("Exception reason: ");
ex.printStackTrace();
return;
}
finally { System.out.println("Error handling completed."); }
System.out.println("End of program!");
}
}
有错误消息: 线程中的异常“main”java.lang.Error:未解决的编译问题: 不能访问类型为Ch9_3_3的封闭实例。必须使用Ch9_3_3类型的封闭实例限定分配(例如x.new A(),其中x是Ch9_3_3的实例)。 在Ch9_3_3.main(Ch9_3_3.java:16)
注意:第16行是try {
答案 0 :(得分:0)
您的代码中存在编译错误
if (i==3) throw new UserException(3);
您无法像这样创建内部类的实例。 相反,你可以
使内部类静态。因为你从主类中调用它。
public static class UserException extends Exception
或可以使对象如下
if (i==3) throw new Ch9_3_3().new UserException(3);