Java的异常总结

运行时异常,虽然要到代码运行时才报出来,但是其实是可以在代码中多一些判断,来避免:

1、NullPointerException :在编程中,就要事先考虑空指针的情况。比如根据id查询用户名,有可能id查找用户时找不到,即用户对象为空指针,就要事先做好判断。

2、NumberFormatException:在字符串转数字过程中,如果字符串有非数字字符,会报该异常。所以在转换之前,可以事先做好判断。

3、ArrayIndexOutOfBoundsException:数组越界异常。在访问数组元素时,如果不确定是否越界,可以用索引与数组长度做判断。

4、ClassCastException:类型转换错误异常。在转换对象类型之前,可以先用instanceof判断对象是否是该类型的实例。

5、ArithmeticException:算术异常。在做除法前,先判断除数是否为0。


普通异常,即继承Exception,底层有抛出,没处理的话,上层必须要捕获(编译器强制)。

运行时异常,即继承RuntimeException,底层有抛出,没处理,上层可以不捕获(编译器中没强制要捕获)。这个时候会有问题,虽然不捕获异常,但是异常依然存在,这时候抛异常的代码之后的代码就得不到执行。


总结:

1.RuntimeException,也就是运行时异常,表示你的代码本身存在BUG,比如ArrayIndexOutOfBoundsException,数组下标越界,这个属于代码有问题。

控制台一旦报RuntimeException,就必须要处理。。没有例外的。而且,处理RuntimeException,不是try-catch能解决的。。try-catch在这里使用毫无意义。应该在逻辑上来规避运行时异常。

2.不是RuntimeException,就是编译时异常,异常只有这两种了。比如你在处理文件流时的I/O问题,就属于编译时异常。这个时候用thr{}catch 来捕获或者 throws即可。编译时异常,逻辑上规避不了,所以需要捕获的方式来解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,241评论 1 44
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,404评论 0 4
  • 在经过一次没有准备的面试后,发现自己虽然写了两年的android代码,基础知识却忘的差不多了。这是程序员的大忌,没...
    猿来如痴阅读 2,866评论 3 10
  • 一直以为自己是因为自己实力不够才不愿起程,原来,只是自己用梦想这个梦幻般的词语去掩盖自己内心的懒惰罢了。 于...
    孤喵萌赫lz阅读 269评论 0 0
  • 怎么与你相遇,是雨天,还是明媚的午后
    千年大粽子阅读 189评论 0 0