Java异常概述

异常分类

在Java中,异常对象都是派生于Throwable类的一个实例。在其下一层分为Error 和 Exception.  Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误。一般很少出现。 Exception类又分为两个分支:一个分支派生于RuntimeException ;另一个为其他异常。

派生于Exception的异常包含如下几种情况:

  • 错误的类型转换。
  • 数组访问越界。
  • 访问空指针。

其他异常包括:

  • 试图在文件尾部后面读取数据。
  • 试图打开一个不存在的文件。
  • 试图根据给定的字符串查找Class对象,而该字符串表示的类不存在。

派生于Error类与RuntimeException类的所有异常为检查异常,其他异常为已检查异常。

异常处理

抛出异常

方法应该在其首部声明所有可能抛出的异常。如果一个方法有可能抛出多个已检查异常,则必须在方法的首列出所有的异常类。每个异常类之间用逗号隔开。

抛出异常的情况:

  • 调用一个抛出已检查异常的方法。
  • 程序运行过程中发现错误,并且利用throw语句抛出一个已检查异常。
  • 程序出现错误。
  • Java虚拟机和运行是库出现的内部错误。

抛出异常的步骤:

  1. 找到一个已有的异常类或基于已有异常类定义新的异常类。
  2. 创建该类的一个对象。
  3. 将对象抛出。

捕获异常

 捕获异常要设置try/catch。利用finally子句可以关闭资源。实现了AutoCloseable接口的类实例在try块退出时,会自动调用close方法。

堆栈跟踪是一个方法调用过程的列表,它包含了程序执行过程中方法调用的特定位置。

可以利用Throwable类的printStackTrace方法访问堆栈跟踪的文本描述信息。

另外一种是使用getStackTrace方法,得到StackTraceElement对象的一个数组,然后分析该数组。

静态的Thread.getAllStackTrace方法,可以产生所有线程的堆栈跟踪。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值