RuntimeException和Exception区别

 

1.java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception。



2.ErrorThrowable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件。虽然   ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它。在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error的任何子类,因为这些错误可能是再也不会发生的异常条件。

3.Exception类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。

4.RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的RuntimeException 的任何子类都无需在 throws 子句中进行声明。它是Exception的子类。

5.异常的分类
  Error:一般为底层的不可恢复的类;
  Exception:分为未检查异常(RuntimeException)和已检查异常(非RuntimeException)。
  未检查异常是因为程序员没有进行必需要的检查,因为疏忽和错误而引起的错误。几个经典的RunTimeException如下:

1.java.lang.NullPointerException;
2.java.lang.ArithmaticException;
3.java.lang.ArrayIndexoutofBoundsException

 

Runtime Exception: 
在定义方法时不需要声明会抛出runtime exception; 在调用这个方法时不需要捕获这个runtime exception; runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。 例如:nullpointexception,IndexOutOfBoundsException就属于runtime exception 


Exception:
定义方法时必须声明所有可能会抛出的exception; 在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去;exception是从java.lang.Exception类衍生出来的。例如:IOException,SQLException就属于Exception

 

Exception 属于应用程序级别的异常,这类异常必须捕捉,Exception体系包括RuntimeException体系和其他非RuntimeException的体系

RuntimeException 表示系统异常,比较严重,如果出现RuntimeException,那么一定是程序员的错误

 

什么是unchecked异常?

即RuntimeException(运行时异常)
不需要try...catch...或throws 机制去处理的异常

 

RuntimeException是Exception类的子类,Exception类对象是Java程序处理或抛弃的对象,它有各种不同的子类分别对应于不同类型的例外。其中类RuntimeException代表运行时由Java虚拟机生成的例外,如算术运算异常 ArithmeticException(例如除以 0)、数组索引越界异常ArrayIndexOutOfBoundsException等;其他则为非运行时异常,例如输入输出异常IOException等。
注意:Java编译器要求Java程序必须捕获或声明所有的非运行时异常,但对运行时异常可以不做处理。虽然编译器对运行时异常不强制要求处理,但实际开发中为了程序的健壮性,还是有必要处理的。
在开发过程中常见的RuntimeException类型的异常主要有以下几种。
□ ArithmeticException:数学计算异常。
□ NullPointerException:空指针异常。
□ NegativeArraySizeException:负数组长度异常。
□ ArrayOutOfBoundsException:数组索引越界异常。
□ ClassNotFoundException:类文件未找到异常。
□ ClassCastException:类型强制转换异常。
□ SecurityException:违背安全原则异常。
其他非RuntimeException类型的常见异常主要有以下几种。
□ NoSuchMethodException:方法未找到异常。
□ IOException:输入输出异常。
□ EOFException:文件已结束异常。
□ FileNotFoundException:文件未找到异常。
□ NumberFormatException:字符串转换为数字异常。
□ SQLException:操作数据库异常

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值