Eclipse Java异常示例

时间:2016-02-22 03:58:37

标签: java eclipse exception-handling

此程序用于异常处理,但问题点在 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 {

1 个答案:

答案 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);