常见异常解决方案

  1. NullPointException
    一、是初始化的问题,变量或者对象没有初始化,这是最基本的
    二、这个是今天遇到的,在此记录一下:
    我将类中的一部分代码提取出来新写了一个成员方法,但是在这个成员方法中调用其他类的成员方法时出现了NullPointerException异常,Debug查了下传值是没有问题的,都已经初始化!多试了好几次也是一样,传值没有问题那么就是调用方法的问题了!
    解决办法:使用关键字“this”指定,在本类中调用方法时,如果方法没有用static修饰,那么这个方法是成员方法,成员方法可以通过两种方式调用,一种是new对象,另一种则是使用“this”关键字.我这里之所以报了空指针异常,估计是因为成员方法的调用问题,没有指明,加上一个“this”就解决了。

  2. ConcurrentModificationException异常原因和解决方法
    原因:使用Iterator遍历/for循环遍历,在遍历的过程中使用list的remove(Object)方法删除其中一个元素,下一次循环就会出现此异常!根本原因是调用list.remove()方法导致modCount和expectedModCount的值不一致。(参考源码可得知)
    解决办法:
    1>单线程模式下:可使用Iterator自带的remove()方法移除元素。
    2>多线程模式下:由于是多线程,remove()方法移除的有可能只是其中一个线程中的元素,所以可使用如下方法解决:
    a)在使用iterator迭代的时候使用synchronized或者Lock进行同步;
    b)使用并发容器CopyOnWriteArrayList代替ArrayList和Vector。(这方法我也不会0.0.)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值