java异常简单总结

java异常指在程序运行时出现的一些错误,中断了正在执行的程序的正常流程,也就是说只要发生异常,程序都会被打断。常见的异常例如IO异常(文件找不到FileNotFoundException、网络连接失败)、空指针异常、数组越界、NoClassDefFoundError等。Java通过API中Throwable类的众多子类描述各种不同的异常,因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的错误信息。

 

Java所有异常类都是 Throwable的子类,它包括了Java异常处理的两个重要子类:Error和Exception.

Note:简单来说,异常与错误的区别是:异常可以通过程序自身捕捉处理,而错误是程序自身无法处理的。

Error:Error及其子类用来描述Java运行系统中的内部错误以及资源耗尽的错误,是程序无法处理的错误,这类错误比较严重, 这些错误是不可查的(对应Exception的可查),就是说用户程序无法catch这类错误,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。例如JVM运行错误(Virtual MachineError),当 JVM 内存资源不足时出现 的OutOfMemoryError, StackOverFlowError,类加载失败NoClassDefFoundError。这些异常发生时,JVM一般会选择线程终止。

Exception:可以通过捕捉处理使程序继续执行,是程序自身可以处理的异常,也称为非致命性异常类。根据错误发生原因可分为:

  • RuntimeException异常,可以捕获并处理,但是通常这类异常我们不会去捕获,编译器也不会去检查。编译器对RuntimeException及其子类不做强制捕获要求,不是指应用程序本身不应该捕获并处理RuntimeException,是否需要捕获,具体问题具体分析
  • 除RunTimeException之外的异常(例如IOException异常),这类异常必须捕获,如果不捕获,编译不通过,Eclipse等也会强制开发人员进行捕获。

RuntimeException及其子类异常,通常是程序逻辑编写不对造成的,应该修复程序本身。例如:

  • NullPointerException:对某个null的对象调用方法或字段
  • IndexOutOfBoundsException:数组索引越界
  • ArithmeticException:除数为0

除RunTimeException之外的异常(例如IO异常),是应用程序逻辑处理的一部分,应该捕获并处理。例如:

  • NumberFormatException:数值类型的格式错误
  • FileNotFoundException:未找到文件
  • SocketException:读取网络失败

   
   
   

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值