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

标签 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 放在一个单独的文件中,而不是嵌套它,这是唯一的方法吗?

最佳答案

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

import yourpkg.SomeClass.someException;

另外,你的语法有点不对:

public void someMethod() {} throws someException

应该是

public void someMethod() throws someException {}

(但也许那是您问题中的错字。)


除非您确实需要引用封闭对象,否则您可能还需要考虑将嵌套类设置为static:

public static class someException extends Exception {
    ...
}

关于java - 无法导入嵌套的自定义异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434159/

相关文章:

java - 调用 onCreate() 时 ListView 不显示任何项目

java - 按类别将一个集合拆分为多个集合

java - 如何在 java 中调用 c# web 服务?

java - 从java代码打开应用程序而不指定路径

java - 使用扫描仪读取数据时出现异常

java - 关于JPanel : paintcomponent()功能的担忧

java - DynamoDB JDK 2.X 中 ItemUtils.toAttributeValue 的等效项?

java - 内部错误;无法实例化 <class>.<init>

java - 通过tcp向logstash发送数据

java - 使用 Nashorn 中的参数扩展抽象 SAM 类