编程过程中异常

今天第一个异常是   点击登录   不管跟数据库密码匹配不匹配都是登录失败    后来解决方案是    c3p0中    数据库名没有更改   

java.lang.IllegalStateException
     非法状态异常,比如在Servlet中根据不同条件进行页面跳转时:
     if(user==null){
          response.sendDirect(request.getContextPath()+"/login.jsp");//3
     }
     request.getSession(true).setAttribute("myuser",user);
     response.sendDirect(request.getContextPath()+"/logined/welcome.jsp");//4
     ==>第4句引发此异常,因为第3句已标示跳转了,虽然还能继续执行到后面,但就页面状态而言已经不能再跳,这个要涉及到Servlet容器内部知识,略之。总之,重定向或者转发页面的确都具备跳转页面的功能,但并不具备返回控制权的功能,其不能阻挡继续执行后续语句,所以:
    解决方法:在第3句后加上return,否则你就写成if-else结构。

 java.lang.ClassCastException
     对象类型转换失败,比如当获得集合中的对象时:
     User user =(User)users.get(i);之所以能够强转是因为存入的时候就是User对象,如果你一定要写成String user =(String)users.get(i);编译器并不报错(没有使用范型的情况下),但运行时就引发此异常了。类似的:String user =(String)request.getAttribute("myuser");一个道理。
     解决方法:users如果是自定义的集合对象,可以使用范型。但是诸如后者request对象这些你没办法使用范型的,就要求你自己保证存入的类型和取出要强转的类型一致了。

java.lang.ClassNotFoundException
     类找不到异常,类加载器不能通过字符串描述加载对应的类,我们一般都是在ConnectionFactory中使用Class.forName(DRIVER);的时候DRIVER写错了引发该异常(至少目前为止你还没有机会通过该方法去加载其他需要的类,或者通过其他方式加载类)

     解决方法:确保导了驱动包,确保拼写正确。

java.lang.NullPointerException    空指针异常  最为常见的异常  一般是对象没实例化     报这个异常   更改方法很简单了  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值