java 允许两个Try 嵌套使用不?

小海盗头头 2008-10-02 03:03:06
如下面:
private Connection getFrom(){
try {
try {

} catch (Exception ex) {
ex.toString());
}
} catch (IOException er) {
er.printStackTrace();
}
return n;
}
...全文
714 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyujia 2008-10-02
  • 打赏
  • 举报
回复
看错了,以为是conn.close这眼神
西瓜 2008-10-02
  • 打赏
  • 举报
回复
语法上是允许的,
但是没有什么实际意义。
sagezk 2008-10-02
  • 打赏
  • 举报
回复
	private Connection getConnectionFromDatabase() {
Connection trueConn = null;
FileProperty sqlProperty = null;
try {
sqlProperty = new FileProperty("SQLconnection.properties");
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(sqlProperty.getProperty("db.driverName"));
ds.setUsername(sqlProperty.getProperty("db.username"));
ds.setPassword(sqlProperty.getProperty("db.password"));
ds.setUrl(sqlProperty.getProperty("db.URL"));
trueConn = ds.getConnection();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println("数据连接出错了:" + e.toString());
} finally {
if (sqlProperty != null) {
sqlProperty.close();
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
//上面的try 是否正确?
//try 块语法上完全可以嵌套,有问题的地方在 sqlProperty.close();
//可以把多个嵌套的 try 合并以简化程序逻辑
//另外捕获到异常最好包装成你自己的异常或者直接把异常抛出去让调用者决定如何处理
return trueConn;
}
sunyujia 2008-10-02
  • 打赏
  • 举报
回复
没看到你下面两句话不能close,close了,你返回的connect就没有用了
sunyujia 2008-10-02
  • 打赏
  • 举报
回复
可以但没必要这么写
	Connection trueConn = null;
FileProperty sqlProperty = null;
try {
sqlProperty = new FileProperty("SQLconnection.properties");
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(sqlProperty.getProperty("db.driverName"));
ds.setUsername(sqlProperty.getProperty("db.username"));
ds.setPassword(sqlProperty.getProperty("db.password"));
ds.setUrl(sqlProperty.getProperty("db.URL"));
trueConn = ds.getConnection();
} catch (SQLException ex) {
System.out.println("数据异常");
} catch (IOException er) {
er.printStackTrace();
} catch (Exception er) {
er.printStackTrace();
}
小海盗头头 2008-10-02
  • 打赏
  • 举报
回复
private Connection getConnectionFromDatabase(){
Connection trueConn = null;
FileProperty sqlProperty = null;
try {
sqlProperty = new FileProperty("SQLconnection.properties");
try {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName( sqlProperty.getProperty("db.driverName"));
ds.setUsername(sqlProperty.getProperty("db.username"));
ds.setPassword(sqlProperty.getProperty("db.password"));
ds.setUrl(sqlProperty.getProperty("db.URL"));
trueConn = ds.getConnection();
} catch (Exception ex) {
System.out.println("数据连接出错了:" + ex.toString());
}
} catch (IOException er) {
er.printStackTrace();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
上面的try 是否正确?
sqlProperty.close();
return trueConn;
}
ZangXT 2008-10-02
  • 打赏
  • 举报
回复
语法上嵌套没问题,只要try能找到对应的catch或者finally就可以了.
不过貌似实际意义不大,也没见有人这么用.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧