Java异常面试题(2020最新版) Java异常架构: Java异常机制是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答what, where, why这三个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。 Java异常架构主要包括Throwable、Error和Exception三个部分。 1. Throwable:是Java语言中所有错误与异常的超类。Throwable包含两个子类:Error(错误)和Exception(异常),它们通常用于指示发生了异常情况。 2. Error(错误):定义为Error类及其子类。程序中无法处理的错误,表示运行应用程序中出现了严重的错误。特点:此类错误一般表示代码运行时JVM出现问题。通常有Virtual MachineError(虚拟机运行错误)、NoClassDefFoundError(类定义错误)等。 3. Exception(异常):程序本身可以捕获并且可以处理的异常。Exception这种异常又分为两类:运行时异常和编译时异常。 运行时异常:RuntimeException类及其子类,表示JVM在运行期间可能出现的异常。特点:Java编译器不会检查它。也就是说,当程序中可能出现这类异常时,倘若既"没有通过throws声明抛出它",也"没有用try-catch语句捕获它",还是会编译通过。 编译时异常:Checked Exception,需要在编译时检查的异常。Java编译器会检查它,并强制开发者进行处理。 Java异常关键字: * throw:用于抛出异常 * throws:用于声明可能抛出的异常 * try:用于捕获异常 * catch:用于捕获异常 * finally:用于finally块中清理资源或者使用try-with-resource语句 Java异常处理最佳实践: 1. 在finally块中清理资源或者使用try-with-resource语句 2. 优先明确的异常 3. 对异常进行文档说明 4. 使用描述性消息抛出异常 5. 优先捕获最具体的异常 6.不要捕获Throwable类 7. 不要忽略异常 8. 不要记录并抛出异常 9. 包装异常时不要抛弃原始的异常 10. 不要使用异常控制程序的流程 11. 使用标准异常 12. 异常会影响性能 13. 总结异常处理 Java异常面试题: 1. Error和Exception区别是什么? 2. 运行时异常和一般异常(受检异常)区别是什么? 3. JVM是如何处理异常的? 4. throw和throws的区别是什么? 5. final、finally、finalize有什么区别? 6. NoClassDefFoundError和ClassNotFoundException区别? 7. try-catch-finally中哪个部分可以省略? 8. try-catch-finally中,如果catch中return了,finally还会执行吗? 9. 类ExampleA继承Exception,类ExampleB继承ExampleA。 10. 常见的RuntimeException有哪些? 11. Java常见异常有哪些 Java异常处理是Java开发中非常重要的一部分,了解Java异常架构和异常关键字对于编写高质量的Java代码非常重要。同时,了解Java异常处理最佳实践也可以帮助开发者写出更加健壮和高效的代码。
剩余20页未读,继续阅读
- 粉丝: 1w+
- 资源: 177
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
- (源码)基于C语言的操作系统实验项目.zip
- (源码)基于C++的分布式设备配置文件管理系统.zip
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip