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

Java 异常处理 -- Java 语言的异常、异常链与断言

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 009 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自己的技术栈的同学。与此同时,本专栏的所有文章,也都会准备充足的代码示例和完善的知识点梳理,因此也十分适合零基础的小白和要准备工作面试的同学学习。当然,我也会在必要的时候进行相关技术深度的技术解读,相信即使是拥有多年 Java 开发经验的从业者和大佬们也会有所收获并找到乐趣。

世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的可靠性。


文章目录

      • 1、Java 异常概述
        • 1.1、异常机制简介
        • 1.2、异常的分类
          • 1.2.1、编译时异常
          • 1.2.2、运行时异常
          • 1.2.3、错误
      • 2、Java 异常的处理
        • 2.1、异常的捕获
          • 2.1.1、`try-catch-finally`
          • 2.1.2、`try-with-resources`
        • 2.2、异常的抛出
        • 2.3、异常的声明
        • 2.4、自定义异常
          • 2.4.1、创建自定义异常
          • 2.4.2、使用自定义异常
          • 2.4.3、自定义异常优点
      • 3、异常链
        • 3.1、什么是异常链接
        • 3.2、Java 中的异常链
          • 3.2.1、示例:定义自定义异常
          • 3.2.2、示例:实现文件读取和异常处理
          • 3.2.3、示例:异常的结果分析
        • 3.3、异常链中的 Caused by
      • 4、拓展:Java 断言处理
        • 4.1、断言的概念
        • 4.2、断言与异常的关系
        • 4.3、Java 断言的介绍
        • 4.4、Java 断言的形式
        • 4.5、Java 断言的场景
          • 4.5.1、变量值明确
          • 4.5.2、不可能到达的代码
          • 4.5.3、前置条件
          • 4.5.4、后置条件


1、Java 异常概述

1.1、异常机制简介

Java 异常是 Java 编程语言中的一种重要机制,用于处理程序执行中的错误情况。异常处理可以使程序在遇到错误时能够优雅地恢复或进行相应的处理,而不是直接崩溃。

在 Java 程序运行过程中,可能会出现各种错误,如文件错误信息、网络连接问题、无效的数组下标或未赋值的对象引用等。如果错误导致某些操作未完成,程序应该:

  1. 回到安全状态,让用户可以执行其他命令;
  2. 或者让用户保存所有操作结果,并适当地结束程序。

实现这些并不简单,因为检测或触发错误条件的代码通常与能够恢复数据到安全状态或保存

http://www.lryc.cn/news/370908.html

相关文章:

  • Spring Cloud Nacos 详解:服务注册与发现及配置管理平台
  • java多线程临界区介绍
  • 基于JSP的超市管理系统
  • 一文讲清:生产报工系统的功能、报价以及如何选择
  • blender bpy将顶点颜色转换为UV纹理vertex color to texture
  • Flink Sql:四种Join方式详解(基于flink1.15官方文档)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第3节(泛型约束)
  • C语言详解(预编译)
  • 解决el-table表格拖拽后,只改变了数据,表头没变的问题
  • 简单塔防小游戏
  • 高考之后第一张大流量卡应该怎么选?
  • 如何从微软官方下载Edge浏览器的完整离线安装包
  • git 常用的命令
  • 【StableDiffusion】Embedding 底层原理,Prompt Embedding,嵌入向量
  • 计算机网络(2) 网络层:IP服务模型
  • 新人学习笔记之(初识C语言)
  • Unity EasyRoads3D插件使用
  • Redis 地理散列GeoHash
  • vim 显示行号
  • C++:调整数组顺序使奇数位于偶数前面【面试】
  • WPF/C#:程序关闭的三种模式
  • 登录/注册- 滑动拼图验证码(IOS/Swift)
  • MyBatis进行模糊查询时SQL语句拼接引起的异常问题
  • 网站调用Edge浏览器API:https://api-edge.cognitive.microsofttranslator.com/translate
  • css实现优惠券样式
  • 函数递归(C语言)(详细过程!)
  • uniapp 接口请求封装
  • C++中的观察者模式
  • conda虚拟环境,安装pytorch cuda cudnn版本一致,最简单方式
  • 第 5 章:面向生产的 Spring Boot