try{}catch{}finally{}的逻辑错误问题
2010-06-22 22:47
344 查看
package fo; import hibernate.HibernateSessionFactory; import org.hibernate.Session; public class TestTry { static { //D try { //A Session session=HibernateSessionFactory.getSession(); //(1) UserInfo userInfo=new UserInfo(); session.save(userInfo); } catch(Exception e) { //B session.close(); //(2) System.out.println(e); } } }
该程序错误。Errors:session cannot be resolved. 系统提示session对象未定义。原因是在try{}块中定义session产生的逻辑错误。假如程序在A处产生异常,则程序立刻跳转到B处,而不会执行(1),也就是不会定义session对象,所以会导致系统报错。
解决方法,把(1),也就是定义session的代码移至D处,try{}块的前面。
package fo; import hibernate.HibernateSessionFactory; import org.hibernate.Session; public class TestTry { static { //D try { //A Session session=HibernateSessionFactory.getSession(); //(1) UserInfo userInfo=new UserInfo(); session.save(userInfo); } catch(Exception e) { //B System.out.println(e); } finally { //C session.close(); //(2) } } }
该程序错误。Errors:session cannot be resolved. 系统提示session对象未定义。报错原因同上,假如程序在A处产生异常,则程序立刻跳转到B处,而不会执行(1),而finally{}块无论如何都会执行,所以导致系统报错。
解决方法同上。
该错误不容易注意到,要特别留神。还有try{}块中不要包含过多的语句,catch异常要有针对性。
相关文章推荐
- try、catch、finally相关问题
- try{}catch{}finally{} 里的代码的执行顺序问题
- java中try{}catch{}和finally{}的执行顺序问题
- try-catch-finally 引发的奇怪问题
- java中关于try、catch、finally中一些问题
- Java面试题-关于try...catch...finally中的问题
- 转载 try ..catch ..finally 执行问题
- 关于JAVA的try catch finally的return返回值问题
- java中try-catch-finally返回值问题
- 在try,catch,finally中return,throw覆盖的问题总结
- try-catch-finally的问题
- C#学习使用try-catch-finally错误处理表达式(续)--定义自己的异常消息类
- try......catch......finally的问题
- try-catch-finally执行与返回值问题
- try catch finally 执行路径问题
- java中try{}catch{}和finally{}的执行顺序问题
- 【Java】try、catch、finally的执行顺序与返回值问题
- try,catch,finally执行及返回值的问题
- try catch finally 返回值问题
- 从JVM指令层面看try-catch-finally返回值问题