14、异常处理

1、异常
  • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。
    • 例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。
    • 例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
2、异常的体系
  • Throwable
    • Error
      • 如 OutOfMemoryError
      • 如 IOError
    • Exception
      • IOException
        • 如 FileNotFoundException
      • RunTimeException
        • 如 NullPointException
3、异常方法
  • public String getMessage()
    返回关于发生的异常的详细信息。这个消息在Throwable 类的构造函数中初始化了。
  • public Throwable getCause()
    返回一个 Throwable 对象代表异常原因。
  • public String toString()
    返回此 Throwable 的简短描述。
  • public void printStackTrace()
    将此 Throwable 及其回溯打印到标准错误流。。
  • public StackTraceElement [] getStackTrace()
    返回一个包含堆栈层次的数组。下标为0的元素代表栈顶,最后一个元素代表方法调用堆栈的栈底。
  • public Throwable fillInStackTrace()
    用当前的调用栈层次填充Throwable 对象栈层次,添加到栈层次任何先前信息中。
4、捕获异常
  • try {
       // 程序代码
    }catch(ExceptionName e1) {
       //Catch 块
    }
    
5、多重捕获模块
  • 一个 try 代码块后面跟随多个 catch 代码块的情况就叫多重捕获。
6、finally关键字
  • finally 关键字用来创建在 try 代码块后面执行的代码块。
  • 无论是否发生异常,finally 代码块中的代码总会被执行。
  • 在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。
    • 注意:
      • 所有异常都必须是 Throwable 的子类。
      • 如果希望写一个检查性异常类,则需要继承 Exception 类。
      • 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
7、自定义异常
8、通用异常
  • 在Java中定义了两种类型的异常和错误。

  • JVM(Java虚拟机) 异常:

    • 由 JVM 抛出的异常或错误。
      • 例如:NullPointerException 类,
      • 例如:ArrayIndexOutOfBoundsException 类,
      • 例如:ClassCastException 类。
  • 程序级异常:

    • 由程序或者API程序抛出的异常。
      • 例如 IllegalArgumentException 类,
      • 例如:IllegalStateException 类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值