我目前正在为游戏创建一个插件,由于某些未知原因,我在初始化变量dbManager
时遇到错误。
变量是第二个被初始化的变量,它位于我班级的顶层。 给出错误的行是:
static DBManager dbManager = DBManager.getInstance();
The whole class can be found here.
它调用DBManager。
我尝试将它包装在try,catch块中,但这本身就给出了它自己的错误。 Eclipse也没有提供任何自动正确的建议。
我得到的错误是Unhandled exception type Exception
。由于这是一个插件,我目前无法测试此代码以获取任何堆栈跟踪。
我该怎么做才能解决错误。
答案 0 :(得分:1)
使用静态块初始化此变量:
static DBManager dbManager;
static {
try {
dbManager = DBManager.getInstance();
}
catch (Exception e) {
throw new RuntimeException("Unable to geta DBManager instance", e);
}
}
不过,我不会使用使用原始Exception类来表示错误的库。使用非最终静态字段就是另一种设计气味。
答案 1 :(得分:0)
虽然我无法看到来自DBManager
的代码,但是此错误表明存在unhandled exception
这意味着DBManager.getInstance()
会抛出异常而您无法像在链接中那样使用它。你必须处理这个例外。最好在构造函数中获取实例并在那里处理异常(至少使用try/catch
)。