Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取数据库连接时eclipse中的调试问题_Java_Eclipse_Debugging - Fatal编程技术网

Java 获取数据库连接时eclipse中的调试问题

Java 获取数据库连接时eclipse中的调试问题,java,eclipse,debugging,Java,Eclipse,Debugging,我在获得连接时调试java程序时遇到问题,但程序成功执行并获得所需的输出 下面是我获取连接对象的代码 public class CRMConnection { private static String url = "jdbc:oracle:thin:@hostname:1521:dbname"; private static String username = "crmuser"; private static String password = "crmuser"; public stati

我在获得连接时调试java程序时遇到问题,但程序成功执行并获得所需的输出

下面是我获取连接对象的代码

public class CRMConnection
{
private static String url = "jdbc:oracle:thin:@hostname:1521:dbname";
private static String username = "crmuser";
private static String password = "crmuser";
public static Connection getConnection()
{
Connection conn=null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection(url,username,password);
}
catch(SQLException e)
{
    System.out.println("exception1:"+e)
}
catch(ClassNotFoundException e)
{
    System.out.println("exception2:"+e)
}
return conn;
}
下面我从另一个类调用getConnection()方法

Connection conn = CRMConnection.getConnection();
如果我在eclipse中以正常模式运行程序,我不会遇到任何问题。我得到了期望的输出。 但如果我在调试模式下运行程序,在执行CRMConnection.getConnection()时,我会低于方法调用堆栈,但如果我继续按F8,程序会成功执行

我不知道为什么eclipse在执行getConnection()时显示在调用堆栈下面。是我的代码有问题还是eclipse调试问题

我正在方法调用堆栈中进入eclipse调试窗口

FileInputStream.open(String) line: not available [native method]
OracleDriver.<clinit>() line: 313
Class<T>.forName0(String,boolean,ClassLoader) line: not available
CRMConnection.getConnection() line : 19
FileInputStream.open(字符串)行:不可用[本机方法]
OracleDriver.()线路:313
Class.forName0(字符串、布尔值、类加载器)行:不可用
CRMConnection.getConnection()行:19

需要java专家的建议。

这不是堆栈跟踪。堆栈跟踪以异常及其消息开始。停止使用空catch块忽略异常。将它们替换为抛出新的RuntimeException(e)如果不想处理选中的异常。这将得到一个真正的堆栈跟踪。我试图在catch块中打印异常,但在控制台中没有打印。我得到数据库连接,程序在正常和调试模式下成功执行。上面的错误没有停止我的程序执行,但是在调试我得到的时候。要打印堆栈跟踪,您需要
e.printStackTrace()
。不
System.out.println(“例外1:+e)
。是的,它将在控制台中打印,除非控制台被重定向到某个文件。你说得对。我们需要使用e.printStackTrace()。你是说我的代码有问题吗?如果我的代码有问题,为什么我会得到连接对象并启动sql查询。我不是什么意思。您正在询问获得异常的原因,但不提供堆栈跟踪。所以基本上不可能回答。我能告诉你的是,你的异常处理非常糟糕。你忽略了例外情况,这绝不是一个好主意。