Java常见异常(Runtime Exception )小结

本文重在Java中异常机制的一些概念。写本文的目的在于方便我很长时间后若是忘了这些东西可以通过这篇文章迅速回忆起来。 
1. 异常机制 
1.1 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 
1.2 传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常,但是如果函数确实要返回-1这个正确的值时就会出现混淆;可读性降低,将程序代码与处理异常的代码混爹在一起;由调用函数的程序来分析错误,这就要求客户程序员对库函数有很深的了解。 
1.3 异常处理的流程 
1.3.1 遇到错误,方法立即结束,并不返回一个值;同时,抛出一个异常对象 
1.3.2 调用该方法的程序也不会继续执行下去,而是搜索一个可以处理该异常的异常处理器,并执行其中的代码 
2 异常的分类 
2.1 异常的分类 
2.1.1 异常的继承结构:基类为Throwable,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception,具体的RuntimeException继承RuntimeException。 
2.1.2 Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。 
2.2 每个类型的异常的特点 
2.2.1 Error体系 Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以,在进行程序设计时,应该更关注Exception体系。 
2.2.2 Exception体系 Exception体系包括RuntimeException体系和其他非RuntimeException的体系 
2.2.2.1 RuntimeException RuntimeException体系包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。 
2.2.2.2 其他(IOException等等)这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。 
### 回答1: 常见runtime exception包括: 1. NullPointerException(空指针异常):当试图访问一个空对象时抛出。 2. ArrayIndexOutOfBoundsException(数组下标越界异常):当试图访问数组中不存在的元素时抛出。 3. ClassCastException(类型转换异常):当试图将一个对象强制转换为不兼容的类型时抛出。 4. IllegalArgumentException(非法参数异常):当传递给方法的参数不合法时抛出。 5. IllegalStateException(非法状态异常):当对象处于不合法的状态时抛出。 6. UnsupportedOperationException(不支持的操作异常):当试图执行不支持的操作时抛出。 7. ArithmeticException(算术异常):当进行除以零或其他不合法的算术操作时抛出。 8. SecurityException(安全异常):当试图执行不允许的操作时抛出。 9. OutOfMemoryError(内存溢出异常):当JVM无法为对象分配足够的内存时抛出。 10. StackOverflowError(栈溢出异常):当递归调用或方法调用过多导致栈空间不足时抛出。 ### 回答2: Runtime Exception,即运行时异常,指的是程序在运行时出现的异常,通常是由于程序逻辑或运行环境等出现问题所引起的。相比于编译时异常,运行时异常并不要求在代码中进行异常处理,但如果不及时处理,可能会导致程序崩溃或错误结果。 常见runtime exception包括: 1. NullPointerException,空指针异常。当试图调用一个空对象的方法或属性时,就会抛出这个异常。 2. IndexOutOfBoundsException,数组越界异常。当访问一个不存在的数组索引时,就会抛出这个异常。 3. ClassCastException,类转换异常。当试图将一个对象强制转换为另一个不兼容的类型时,就会抛出这个异常。 4. IllegalArgumentException,非法参数异常。当传入的参数不符合方法预期的要求时,就会抛出这个异常。 5. ArithmeticException,数学运算异常。当进行除以零等无法进行的数学运算时,就会抛出这个异常。 6. RuntimeException,运行时异常。这是一个通用的运行时异常,通常用于表示程序出现了不可预知的错误。 以上是常见runtime exception,还有其他一些较为特殊的异常,如StackOverflowError、OutOfMemoryError等。在编写程序时,我们需要注意预防这些异常的出现,并及时处理已经出现的异常,以保证程序的稳定性和正确性。 ### 回答3: Runtime exceptionJava中的一种异常情况,通常是由于程序运行时出现了不可预测的错误或异常情况导致的。下面列举了常见runtime exception及其原因: 1. NullPointerException: 空指针异常,通常是由于引用了空对象或未初始化的对象引用导致的。 2. ArrayIndexOutOfBoundsException: 数组下标越界异常,通常是由于访问数组时下标越界导致的。 3. ClassCastException: 类型转换异常,通常是由于错误的类型转换或强制类型转换导致的。 4. IllegalArgumentException: 非法参数异常,通常是由于参数无效或不合法导致的。 5. IllegalStateException: 非法状态异常,通常是由于对象的状态不符合操作要求导致的。 6. ConcurrentModificationException: 并发修改异常,通常是由于同时对同一个对象进行修改操作导致的。 7. NumberFormatException: 数字格式化异常,通常是由于将字符串转换为数字时字符串格式无效导致的。 总之,runtime exceptionJava常见异常类型,开发人员在进行代码开发时需要注意异常处理和防御,尽量避免出现异常情况。如果出现异常,需要进行及时的异常捕获和处理,保证程序的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值