您的位置:首页 > 职场人生

黑马程序员——异常

2015-10-14 19:11 253 查看
 1.:ConcurrentModificationException:并发修改异常
这是个什么异常,怎么产生的,怎么解决的?
怎么产生:
当我们通过迭代器迭代元素的过程中,又通过集合去添加了元素。这种情况是不允许的。
因为迭代器是依赖于集合存在的,如果集合发生改变,迭代器也应该相应的发生改变。而我们目前看到的却是,迭代器没变,集合变了。所以,报出了一个并发修改异常。


注意问题:通过迭代器遍历集合的时候,是不能通过集合去操作(添加,删除)。
解决办法:
A:全部通过迭代器操作:元素是添加到刚遍历的那个元素后面。
通过迭代器迭代的时候,可以通过迭代器对集合进行操作。
B:全部通过集合操作:元素是添加到最后的。
通过集合普通for遍历的时候,可以通过集合去操作。






2..NullpointerException : 空指针异常
   这是个什么异常,怎么产生的,怎么解决的?
     


怎么产生?


public class NullPointerExceptionextends RuntimeException当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括: 


调用 null 对象的实例方法。 
访问或修改 null 对象的字段。 
将 null 作为一个数组,获得其长度。 
将 null 作为一个数组,访问或修改其时间片。 
将 null 作为 Throwable 值抛出。 
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。 
  


3.  角标越界异常:
public class IndexOutOfBoundsExceptionextends RuntimeException指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。 


应用程序可以为这个类创建子类,以指示类似的异常。 
直接已知子类: 
ArrayIndexOutOfBoundsException, StringIndexOutOfBoundsException 
 
4. ArrayIndexOutOfBoundsException    数组角标越界异常


出现ArrayIndexOutOfBoundsException错误,意思是超出了数组越界异常,说明数组索引的范围超出了数组的长度。
   怎么产生的?
当遍历数组时,角标越界,输入了根本不存在在的角标,会出现上述异常。
   
解决办法:修改代码,检查角标是否越界。
 




5. StringIndexOutOfBoundsExceptionextends IndexOutOfBoundsException: 字符串索引越界异常


此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小。对诸如 charAt 的一些方法,当索引等于字符串的大小时,也会抛出该异常。


6. ClassCastExceptionextends RuntimeException   类型转换异常


当试图将对象强制转换为不是实例的子类时,抛出该异常。例如,以下代码将生成一个 ClassCastException: 
Object x = new Integer(0);
     System.out.println((String)x);




7 RuntimeExceptionextends ExceptionRuntimeException  运行时异常


 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 


可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。 




直接已知子类: 
  


8. ClassCastExceptionextends RuntimeException  类型转换异常


当试图将对象强制转换为不是实例的子类时,抛出该异常。例如,以下代码将生成一个 ClassCastException: 




     Object x = new Integer(0);
     System.out.println((String)x);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: