为了账号安全,请及时绑定邮箱和手机立即绑定

为什么一写finally就报错啊?奇了怪了

为什么一写finally就报错啊?奇了怪了

慕的地10843 2023-01-12 22:15:26

org.apache.jasper.JasperException: An exception occurred processing JSP page /FistWeb.jsp at line 80

77: }catch(Exception e){
78: System.out.println(e);
79: }finally{
80: rs.close();
81: pstmt.close();
82: conn.close();
83: }

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1740条经验 获得超2个赞

因为你在try中定义的变量有效作用域只是try块,出了try块就不能用了,所以finally块中就编译错误。这很好理解,try中的代码万一出现异常就会跳到finally块继续执行,可能这时try中的变量定义还没执行,你却要在finally中用了,所以这肯定是不行的~

查看完整回答
反对 回复 2023-01-15
?
holdtom

TA贡献1551条经验 获得超10个赞

把定义放到try外面去。因为你在try中定义的变量有效作用域只是try块,出了try块就不能用了,所以finally块中就编译错误。这很好理解,try中的代码万一出现异常就会跳到finally块继续执行,可能这时try中的变量定义还没执行,你却要在finally中用了,所以这肯定是不行的


查看完整回答
反对 回复 2023-01-15
  • 2 回答
  • 0 关注
  • 10 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信