无法导入嵌套的自定义异常类

时间:2014-12-11 23:11:36

标签: java

我有这堂课:

public class SomeClass {

    public void someMethod() {} throws someException

    public class someException extends Exception { // Exception class
        public someException(String message) {
            super(message);
        }       
    }

}

另一堂课:

public class SomeOtherClass {

    public static void main (String[] args) {   

        SomeClass obj = new SomeClass();    

        try {
            obj.someMethod();
        } catch (someException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

}

Eclipse抱怨" someException无法解析为类型"。我试着添加

import SomeClass.someException

然后它说"导入SomeClass无法解决"

你当然可以将someException放在一个单独的文件中,而不是让它嵌套,这是唯一的方法吗?

1 个答案:

答案 0 :(得分:3)

您应该可以通过使用类名SomeClass.someException对其进行限定来使用该类。如果您更愿意导入它,则必须将代码放入包中。然后你可以这样做:

import yourpkg.SomeClass.someException;

另外,这里的语法有点不对:

public void someMethod() {} throws someException

应该是

public void someMethod() throws someException {}

(但也许这是你问题中的错字。)


您可能还想考虑创建嵌套类static,除非您确实需要引用封闭对象:

public static class someException extends Exception {
    ...
}