有个类文件无法编译,求助,分不够马上加

时间:2008-06-19 08:31:13   来源:论坛整理  作者:  编辑:chinaitzhe
conn.java
package javafan;
import java.sql.*;
import java.util.*;
public class conns {
Connection conn=null;
ResultSet rs;
String user ="sa";
String password ="123";
String sql;
String url ="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=guestbook";
public conns()
{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
System.out.println("数据库连接成功!");

}
catch(Exception e)
{
e.printStackTrace();
System.out.println("数据库连接失败");
}
}

public List executeQuery(String sql)
{

conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
List results = new ArrayList();
while (rs.next())
{
Admin beans = new Admin();
beans.setUserName(rs.getString("username"));
beans.setPassword(rs.getString("password"));
results.add(beans);
}
stmt.close();
conn.close();
System.out.println(" <br>数据库表打开!");
return results;


}

}

Admin.java


package javafan;

public class Admin {
private String userName;

private String password;

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}

报错内容:

vafan\conns.java:28: unreported exception java.sql.SQLException; must be caugh
t or declared to be thrown
conn = DriverManager.getConnection(url, user, password);
^
javafan\conns.java:29: unreported exception java.sql.SQLException; must be caugh
t or declared to be thrown
Statement stmt = conn.createStatement();
^
javafan\conns.java:30: unreported exception java.sql.SQLException; must be caugh
t or declared to be thrown
rs = stmt.executeQuery(sql);
^
javafan\conns.java:32: unreported exception java.sql.SQLException; must be caugh
t or declared to be thrown
while (rs.next())
^
javafan\conns.java:35: unreported exception java.sql.SQLException; must be caugh
t or declared to be thrown
beans.setUserName(rs.getString("username"));
^
javafan\conns.java:36: unreported exception java.sql.SQLException; must be caugh
t or declared to be thrown
beans.setPassword(rs.getString("password"));
^
javafan\conns.java:39: unreported exception java.sql.SQLException; must be caugh
t or declared to be thrown
stmt.close();
^
javafan\conns.java:40: unreported exception java.sql.SQLException; must be caugh
t or declared to be thrown
conn.close();
^

网友回复:用try catch围起来。

网友回复:给你的所有方法都加上 throws Exception
网友回复:public List executeQuery(String sql) Throws Exception
{

conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);

加上红色的那句话,或者把上面的三句加try{}catch(E e){}
网友回复:很明显 两种方案可供选择
must be caught or declared to be thrown
网友回复:数据库操作语句要throw exception的
要能抛出异常
网友回复:异常信息,Throws Exception 或者是try catch 自己处理了
网友回复:
引用 6 楼 hmsuccess 的回复:
异常信息,Throws Exception 或者是try catch 自己处理了

用try catch 好一点把,,你没用eclipse卡发工具吗,,他会提示的呀,,
要你还是用记事本什么开发的话,,建议你要学开发工具了
网友回复:嗯,SQLException 是检查型异常,使用时必须捕捉处理掉或者抛给调用方法处理。

若是继续 RuntimeException 的异常,是非检查型异常,使用时可以不用捕捉。
网友回复:我想知道以上的两个类有错误吗,什么原因导致的异常,在conn.java中去掉“ package javafan;”就不会出现上面的错误,不知道是为什么,请各位多多指教,假如分不够,我马上加!!!
网友回复:try catch 一下。
网友回复:原因就是你没有捕捉编译期的异常,导致编译出错
网友回复:
引用 8 楼 bao110908 的回复:
嗯,SQLException 是检查型异常,使用时必须捕捉处理掉或者抛给调用方法处理。

若是继续 RuntimeException 的异常,是非检查型异常,使用时可以不用捕捉。

同意
网友回复:谁能给我解释一下 为什么在conn.java中去掉“ package javafan;”就不会出现上面的错误,多谢啦!!!
网友回复:
引用 12 楼 duzhonghua 的回复:
引用 8 楼 bao110908 的回复:
嗯,SQLException 是检查型异常,使用时必须捕捉处理掉或者抛给调用方法处理。

若是继续 RuntimeException 的异常,是非检查型异常,使用时可以不用捕捉。

同意

网友回复:没有处理异常
网友回复:楼上的很多人已经解决了啊····
网友回复:使用try—catch捕捉异常
那几个语句可能出现异常 需要捕捉
网友回复:友情阅览
网友回复:我想可能是我表达的不是很清楚,我知道需要捕捉异常,我想要知道的是 在conn.java中去掉“ package javafan;”就不会出现上面的报错,就不需要捕捉异常也能正常的编译,而为什么加上后,就需要去捕捉了呢?是JAVA本身的原因还是我的程序在编写的时候,出现了不合理的地方。
网友回复:请各位热心的帮助者,看清我的提问后再进行回答,谢谢!!!
网友回复:楼主你确定你不打包编译就可以通过?!
我觉得还是你操作错误了,对于checked exception,必须捕捉或者抛出。这个和打包不打包没关系啊。
关键字:文件,无法,编译,求助,不够,马上,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面