我是Java新手。我正在做这件事它会产生错误,请让我知道为什么我要进入这个函数 dispatchUncaughtException 。我做对了吗?如果我不是这样,那么这件事怎么可能呢?
这是 dataCollection类
public class dataCollection {
private ResultSet my_rs1 = null;
public ResultSet mydata()
{
try
{
String get_data_query = "SELECT * FROM my_table ";
my_rs1 = cn.stmt.executeQuery(aggregator_data_query);
} catch(SQLException SQLex)
{
System.out.println("SQL Error: " + SQLex.getMessage());
}
return my_rs1;
}
}
这是callClass //我们称之为ResultSet
public class callingClass
{
dataCollection dc = new dataCollection;
private ResultSet my_call_data = dc.mydata();
while(my_call_data.next())
{
//Code Here
}
}
修改
Exception in thread "Thread-2" java.lang.NullPointerException
at sms_sender.dataCollection.aggregator_data(dataCollection.java:29)
at sms_sender.threadClass.run(threadClass.java:27)
答案 0 :(得分:1)
更正您的参数:
String get_data_query = "SELECT * FROM my_table";
my_rs1 = cn.stmt.executeQuery(get_data_query);
修改强> 步骤2 => 检查数据库连接是否正常工作。我认为你的stmt是空的或不正确的。
答案 1 :(得分:0)
代码应该在java中处于函数或块中。
public class callingClass
{
dataCollection dc = new dataCollection;
private ResultSet my_call_data;
public void showData(){
my_call_data = dc.mydata();
while(my_call_data.next()){
//Code Here
}
}
}
答案 2 :(得分:0)
发生的事情是您没有捕获异常,因此Thread.UncaughtExceptionHandler会尝试转发此异常。
首先尝试捕获异常并给我们堆栈跟踪:
catch (Exception e) {
e.printStackTrace(); // if you are not using a logger like log4j just print it.
}
然后我建议您阅读有关Exceptions
的更多信息最后,由于通知类名称应以大写字母开头,请参阅Naming Conventions。
好读:)
PS:我没注意到你的代码不在方法/函数中,但我认为这只是一个糟糕的编辑,因为该类甚至无法编译。