开发中常见的异常

1、

Java异常可分为3种:

       (1)错误:Java.lang.Error

  (2)编译时异常:Java.lang.Exception

  (3)运行期异常:Java.lang.RuntimeException

2、

三者之间的关系:

Java.lang.Error和Java.lang.Exception继承自Java.lang.Throwable;

Java.lang.RuntimeException继承自Java.lang.Exception.

3、

三者出现的时机

(1)Error (错误): 一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。

(2)编译时异常(Exception): 程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。

(3)运行期异常(RuntimeException): 这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。【对于开发而言,运行时异常使我们最应该熟悉的】

NullPointerException(空指针异常)、 
IndexOutOfBoundsException(下标越界异常) 
ClassCastException(类转换异常) 
ArrayStoreException(数据存储异常,操作数组时类型不一致) 
IO操作的BufferOverflowException异常

【反射中的常见运行时异常】

NoSuchFieldException:①没有对应字段;②属性为私有时获取Field用的方法不是getDeclaredField。

IllegalAccessException:这个异常的解释是”没有访问权限”,当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常。

解决方案:属性/构造方法.setAccessible(true);【采用setAccessible()方法,避免JVM对访问权限的检查】

  

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值