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;
- 子类重写父类方法的时候,抛出异常类型要么和父类抛出异常一致,要么为父类异常类型的子类型;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App