Java开发中常见的问题、异常及解决方案

1) java.lang.NullPointerException 空指针异常;出现原因:调用了未经初始化的对象或者是不存在的对象。
2) java.lang.ClassNotFoundException 指定的类找不到;出现原因:类的名称和路径加载错误;通常都是程序试图通过字符串来加载某个类时可能引发异常。
3) java.lang.NumberFormatException 字符串转换为数字异常;出现原因:字符型数据中包含非数字型字符。
4) java.lang.IndexOutOfBoundsException 数组角标越界异常,常见于操作数组对象时发生。
6) java.lang.ClassCastException 数据类型转换异常。
7) java.lang.NoClassDefFoundException 未找到类定义错误。
8)SQLException SQL 异常,常见于操作数据库时的 SQL 语句错误。
9) java.lang.InstantiationException 实例化异常。

10)404错误:这是常见的页面不存在错误,建议仔细核查显示的网页是否存在(在运行的浏览器地址框中仔细查看当前路径,核实该路径是否正确,是否有路径错误,当前网页名字名字错误,使 用了相对路径导致跳转出错等问题)。

11)500错误:大概率是代码有问题。


以下为真实场景中遇到的问题:

一.端口被占用

若出现以上类似的信息,表示你当前Tomcat中的端口已被其它应用或进程占用,需要将其关闭后才可以正常运行。

解决方案:

a.通常直接在后台结束进程即可。

b.若后台找不到该进程;则需要进入命令行界面(win+R:cmd)

使用命令查看占用8080端口的进程号:netstat –aon | findstr "8080"

示例:TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 3500

杀掉进程:tskill 3500(进程号-PID

二、数据库相关异常

1.数据密码错误

出现如图的异常,应该就是你连接数据库时密码有问题,需要查看JDBC中对应数据库的密码是否正确。

2.参数索引超出范围

 出现如图的异常表示参数索引超出了范围,简单的理解就是sql语句中的?的个数和你的参数个数不匹配;图中箭头标注的位置应该是(i+1)。

3.数据表不存在

 图中的异常信息大致就是,在session1数据库中不存在user表,查看对应的sql会发现from后面的表名应该有问题user-->应该是users。

4.字段信息有误

 图中的异常信息大致就是,s1(schedule)这张数据表中不存在scheduleidd这个字段列(column);此类异常通常是sql语句编写错误。

三、编码问题

 

如果返回客户端的信息存在乱码问题,先看看项目中的编码格式是否符合自己的需要,如果正常的话,再看看servlet中是否有问题,如图在编码过程中将utf-8写成了uft-8。

四、越界

 图中的异常情况大概是下标越界了,出现本异常的原因是上面listSchedule查出来的值为null或0(当listSchedule有值的时候不会有异常),所以下面的listSchedule.get(0)就存在问题;解决方案:应该在前面加一层判断!

 五、代码逻辑的问题

除开运行时出现的异常问题了,可能还存在其它的问题。

1.代码的业务逻辑有问题(此问题程序可能不会出现异常,只是返回的结果和预期不一致)

 比如图中的sql里面的参数顺序和下面的实际参数位置不对应,就可能造成一直提示密码错误。

解决方案:遇到此类问题,主要查看自己对应的代码是不是逻辑存在问题。

2.编译时出现异常。

 

 图中的两行代码下面出现红色下划线,此问题就是编译时出现了异常,从图中可以看出此编译异常是因为参数类型不对应。解决方案:若出现编译时异常时,可以将鼠标放到出现异常的地方,查看对应的异常信息。

持续更新中..................................

  • 10
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小楊永远的神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值