以下代码显示了一个空指针异常。但我无法找到它在哪里。这是我的sql数据库。我该如何修复它?
try {
DefaultTableModel d=(DefaultTableModel) jTable3.getModel();
for(int x=0;x<d.getRowCount();x++){
double npu=Double.parseDouble(jTable3.getValueAt(x, 7).toString());
double ns=Double.parseDouble(jTable3.getValueAt(x, 8).toString());
double dis=Double.parseDouble(jTable3.getValueAt(x, 9).toString());
int qty=Integer.parseInt(jTable3.getValueAt(x, 10).toString());
JM.putdata("INSERT INTO stock VALUES('"+jTable3.getValueAt(x, 0).toString()+"','"+jTable3.getValueAt(x, 1).toString()+"','"+jTable3.getValueAt(x, 2).toString()+"','"+jTable3.getValueAt(x, 3).toString()+"','"+jTable3.getValueAt(x, 4).toString()+"','"+jTable3.getValueAt(x, 5).toString()+"','"+jTable3.getValueAt(x, 6).toString()+"','"+npu+"','"+ns+"','"+dis+"','"+qty+"','"+jTable3.getValueAt(x, 11).toString()+"')");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e, "ERROR", JOptionPane.ERROR_MESSAGE);
}
答案 0 :(得分:3)
这不是mysql异常,而是Java异常。在catch体内,添加以下行:
e.printStackTrace();
这将打印在表示其调用堆栈的列表中抛出异常的行。
您可以在此处找到更多详细信息:printStackTrace
答案 1 :(得分:0)
您可以在代码中设置断点,然后逐行检查变量值。
设置换行符 要设置换行符,请单击要设置断点的行的左边距,或单击该行并按Ctrl-F8。 要删除断点,请单击该行的左边距或单击该行,然后按Ctrl-F8。 如果要自定义换行符,可以通过“断点”窗口进行自定义。 选择窗口|调试|断点或按Alt-Shift-5。在“断点”窗口中, 右键单击断点,然后选择“自定义”
更多信息:https://netbeans.org/project_downloads/usersguide/nbfieldguide/Chapter5-Debugging.pdf
答案 2 :(得分:0)
e.printStackTrace();
将准确告诉您哪一行有NullPointerException
答案 3 :(得分:0)
每当在null对象引用上调用方法时,都会发生NullPointerException。例如比如说,在你的例子中
jTable3.getModel()
在运行时,对象引用jTable3
未初始化;这意味着,上面的调用更像是
<null>.getModel()
由于null引用无法处理方法调用(实际的期望的对象不存在);所以发生空指针异常。
如何检测Nullpointer?
在日志文件/控制台中打印异常。为此,在代码中使用try-catch块,如
try{
// your code, which may throw nullpointer.
}catch(Exception e) { // Just catch all exception
e.printStackTrace();
}
检查堆栈跟踪(这对于任何类型的异常都很常见,而不仅仅是Nullpointer) 让我们举一个例子:
引起:java.lang.NullPointerException 在android.content.ContextWrapper.getPackageName(ContextWrapper.java:127) 在android.content.ComponentName。(ComponentName.java:75) 在android.content.Intent。(Intent.java:3301) 在com.example.va.datasender.MainActivity。(MainActivity.java:36)
第1行:告诉异常类型 - 在这种情况下为NullPointerException 第2行:它告诉Java文件的名称和确切的行号。 转到行号并检查对象引用上的所有方法调用: e.g。
obj.someMethod();
if(obj == null){ System.out.println("obj is null"); }
如何避免NullPointer?
请See Here一个好的教程。