Java 如何在大型Eclipse程序中查找错误

Java 如何在大型Eclipse程序中查找错误,java,mysql,eclipse,exception,Java,Mysql,Eclipse,Exception,我有一个与MySQL数据库交互的相当大的程序。我最近对数据库的结构做了相当大的修改,但我认为我已经对我的程序进行了所有必要的修改,以补偿这些数据库的修改,但显然我没有 我最近刚刚收到了几条错误消息,第一条是: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 但奇怪的是,它并没有像典型的stacktrace那样告诉我这个错误来自哪个文件,更不用说哪个行

我有一个与MySQL数据库交互的相当大的程序。我最近对数据库的结构做了相当大的修改,但我认为我已经对我的程序进行了所有必要的修改,以补偿这些数据库的修改,但显然我没有

我最近刚刚收到了几条错误消息,第一条是:

 java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
但奇怪的是,它并没有像典型的stacktrace那样告诉我这个错误来自哪个文件,更不用说哪个行号了。我怎么才能知道这是怎么回事


在这个程序中,我有很多对数据库的调用,其中大部分都处理时间戳列。我担心,虽然我已经使用Eclipse几个月了,但我还没有使用它的调试透视图。如何使用它?

这是单元和集成测试帮助您的地方。首先要做的是:修复日志记录。您还没有告诉我们有关应用程序或记录它的内容的任何信息,但它没有理由不生成完整的堆栈跟踪…在SQLException的构造函数中放置一个断点,并以调试模式启动程序。使用应用程序直到它到达断点。堆栈将告诉您哪些代码导致创建异常。使用一组System.out.printlns和log4j,我能够跟踪问题的起因。事实证明,我的MySQL数据库表中的大多数记录都有0000-00-00:00:00作为时间戳,这显然是不可能的。我不确定这是怎么发生的,但由于该列可以设置为NULL,我只是将它们改为NULL。至于断点,它们似乎从来都不适合我。我以前试过使用它们,但它们只是消失了,没有暂停代码的执行。我想我只是不知道如何正确使用它们。