java 异常

异常

程序在执行过程中发生的不正常情况称之为"异常",可分为两类:

  • Error:java 虚拟机无法解决的严重问题,程序会崩溃;
  • Exception:因为编程错误,或者偶然的外在因素导致的一般性问题,分为两种:
    • 运行时异常;
    • 编译时异常;

异常体系分布:

  • Throwable extends Object implements Serializable
    • Error:错误,程序崩溃;
    • Exception:异常
      • 编译时异常:否则编译不通过;
      • RuntimeException:运行时异常,jvm运行不通过;

异常处理方式:

  • throws:将发生的异常抛出去,比如编译异常,需要显式抛出,但是运行异常,当没有异常处理时,是默认调用throws,交给上一级进行处理;
  • try-catch-finally:捕捉异常,处理异常;
    • try-finaly:捕捉异常,在程序挂掉之前执行 finally代码块;
    • try-catch:有异常执行catch代码块,否则跳过;
    • try-catch-finally:捕捉异常,然后执行catch代码块,再执行finally代码块;
      • 当catch代码块有return语句时,会将返回数据使用一个临时变量temp保存,然后再执行finally代码块,最后再执行return temp;
      • 当catch 和 finally中均有return语句时,一个方法只执行一个return,所以会执行 finally的代码块;
  • throws处理异常时的注意事项:
    • 编译异常必须处理,使用 try-catch 或者 throws;
    • 运行异常,没有处理,默认是调用throws,直到返给jvm;
    • 子类重写父类方法的时候,抛出异常类型要么和父类抛出异常一致,要么为父类异常类型的子类型;
posted @   烟雨断桥  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示