黑马程序员——异常
来源:互联网 发布:bind js 原生 编辑:程序博客网 时间:2024/06/11 06:49
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);
这是个什么异常,怎么产生的,怎么解决的?
怎么产生:
当我们通过迭代器迭代元素的过程中,又通过集合去添加了元素。这种情况是不允许的。
因为迭代器是依赖于集合存在的,如果集合发生改变,迭代器也应该相应的发生改变。而我们目前看到的却是,迭代器没变,集合变了。所以,报出了一个并发修改异常。
注意问题:通过迭代器遍历集合的时候,是不能通过集合去操作(添加,删除)。
解决办法:
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);
0 0
- 黑马程序员—异常
- 黑马程序员—异常
- 黑马程序员—异常
- 黑马程序员—异常
- 黑马程序员—异常
- 黑马程序员—异常
- 黑马程序员—异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- 黑马程序员——异常
- C++ 对象数组
- loadView的用法
- java.sql.Date与java.util.Date的权衡使用
- 投放水位计的方法
- java三种方法追加内容到文件末尾
- 黑马程序员——异常
- 大学最后一场比赛
- 实验性质第一篇
- 初识openwrt(上)
- Codeforces 489D Unbearable Controversy of Being
- iOS开发总结之代码规范
- 横竖屏事件响应(viewWillLayoutSubviews和通知)两种方式
- Dijkstra算法
- 手动安装Genymotion plugin for Eclipse