当前位置: 首页 > article >正文

【Java基础面试题031】Java运行时异常和编译时异常之间的区别是什么?

回答重点

主要有三大区别,分别是发生时机、捕获和处理方式设计意图

1)发生时机:

  • 编译时异常(Checked Exception):发生在编译阶段,编译器会检查此类异常,程序必须堆这些异常进行处理,否则程序将无法通过编译
  • 运行时异常(Unchecked Exception):发生在程序运行期间,编译器不会强制要求处理这些异常。(Error也是运行时发生的,不过是一种无法处理的系统级错误)

2)捕获和处理方法的区别:

  • 编译时异常:必须在代码中显式处理,使用try-catch或者throws关键字声明抛出
  • 运行时异常:可以不用显式处理,可以选择使用try-catch捕获处理,或者让程序终止时由JVM抛出

3)设计意图区别:

  • 编译时异常:通常是由外部因素引发的异常(如文件I/O操作、数据库连接失败等),开发者无法完全预知这些问题,因此编译器强制要求进行处理
  • 运行时异常:一般是由开发者的编程错误或逻辑漏洞引发的,属于程序内部的问题,开发者理论上可以预知,可以在调试阶段发现处理

扩展知识

可以看我其他博客:【JavaSE】基础知识复习(三)-CSDN博客

【Java基础面试题020】Java中Exception和Error有什么区别?-CSDN博客


http://www.kler.cn/a/449626.html

相关文章:

  • Linux 中的 cat 命令:使用、原理与源码解析
  • python中的字典数据和标准json格式区别
  • vscode 快速切换cangjie版本
  • 电脑开机提示error loading operating system怎么修复?
  • 微服务——技术选型与框架
  • Jenkins持续集成部署——jenkins安装
  • 验证 Dijkstra 算法程序输出的奥秘
  • 12.12深度学习_CNN_项目实战
  • 武汉火影数字3D光影秀打造 “光+影+文化+故事+演艺“完美融合
  • Redis 事务处理:保证数据完整性
  • 深入理解Redis
  • 期权VIX指数构建与择时应用
  • windos 安装docker
  • JS代码混淆器:JavaScript obfuscator 让你的代码看起来让人痛苦
  • 被裁20240927 --- 嵌入式硬件开发 前篇
  • 通过Docker Compose来实现项目可以指定读取不同环境的yml包
  • 【D03】SNMP、NETBIOS和SSH
  • sqli-labs(第二十六关-第三十关卡通关攻略)
  • 使用 Marp 将 Markdown 导出为 PPT 后不可编辑的原因说明及解决方案
  • K8s 无头服务(Headless Service)
  • Go语言zero项目部署后启动失败问题分析与解决
  • Springboot调整接口响应返回时长详解(解决响应超时问题)_springboot设置请求超时时间
  • 使用ID3算法根据信息增益构建决策树
  • 中小企业的助力工具:项目管理系统如何优化资源配置?
  • golang 链路追踪
  • 计算机毕业设计Python+Spark知识图谱高考志愿推荐系统 高考数据分析 高考可视化 高考大数据 大数据毕业设计