博客
关于我
Java进阶:异常处理机制
阅读量:267 次
发布时间:2019-03-01

本文共 1007 字,大约阅读时间需要 3 分钟。

Java 异常处理机制

异常概论

1.1 异常概念

在程序中,异常是指在执行过程中出现的非正常情况,最终会导致JVM的非正常停止。与语法错误不同,异常是在程序运行时发生的,会导致程序崩溃,但可以通过特殊处理来避免。

1.2 Throwable体系

Throwable是异常处理的根类,主要包括两个子类:

  • Error: 严重错误,无法通过处理,必须事先避免。
  • Exception: 常见异常,程序员可通过代码纠正。

Throwable中的常用方法:

  • public void printStackTrace(): 打印异常信息。
  • public String getMessage(): 获取异常原因。
  • public String toString(): 获取异常类型和描述。

1.3 异常分类

  • 编译时期异常(Checked Exception): 在编译时检查,若未处理则编译失败。
  • 运行时期异常(Unchecked Exception): 在运行时检查,编译时不检测。

1.4 异常产生过程

通过一个简单的数组索引越界例子,解析异常产生的过程。

异常的处理

2.1 抛出异常(throw)

使用throw关键字抛出异常对象,告知调用者程序中的问题。

2.2 Objects类

Objects.requireNonNull(T obj)用于检查对象是否为null,抛出NullPointerException。

2.3 声明异常(throws)

在方法声明中使用throws关键字,告知调用者可能抛出的异常类型。

2.4 捕获异常(try...catch)

使用try块捕获异常,catch块处理异常,提供错误处理的机制。

2.5 finally代码块

finally用于执行一定要执行的代码,确保资源释放或其他重要操作。

自定义异常

3.1 概述

自定义异常用于处理业务逻辑中的特殊情况,例如注册用户名重复。

3.2 自定义异常练习

定义RegisterException类,模拟注册用户名已存在的场景。

异常注意事项

  • 捕获多个异常: 使用多个catch块分别处理不同类型的异常。
  • 运行时异常: 可以不处理,程序会自动终止。
  • finally代码块: 确保资源释放或必要操作执行。
  • 异常传播: 子类方法不能抛出父类未声明的异常,需捕获处理。

通过以上知识,掌握Java异常处理的核心机制,能够有效解决程序中的异常问题。

转载地址:http://ovux.baihongyu.com/

你可能感兴趣的文章
Opencv——模块介绍
查看>>
OpenCV与AI深度学习 | 2024年AI初学者需要掌握的热门技能有哪些?
查看>>
OpenCV与AI深度学习 | CIB-SE-YOLOv8: 优化的YOLOv8, 用于施工现场的安全设备实时检测 !
查看>>
OpenCV与AI深度学习 | CoTracker3:用于卓越点跟踪的最新 AI 模型
查看>>
OpenCV与AI深度学习 | OpenCV中八种不同的目标追踪算法
查看>>
OpenCV与AI深度学习 | OpenCV图像拼接--Stitching detailed使用与参数介绍
查看>>
OpenCV与AI深度学习 | OpenCV如何读取仪表中的指针刻度
查看>>
OpenCV与AI深度学习 | OpenCV常用图像拼接方法(一) :直接拼接
查看>>
OpenCV与AI深度学习 | OpenCV常用图像拼接方法(三):基于特征匹配拼接
查看>>
OpenCV与AI深度学习 | OpenCV常用图像拼接方法(二) :基于模板匹配拼接
查看>>
OpenCV与AI深度学习 | OpenCV常用图像拼接方法(四):基于Stitcher类拼接
查看>>
OpenCV与AI深度学习 | OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测(建议收藏!)
查看>>
OpenCV与AI深度学习 | SAM2(Segment Anything Model 2)新一代分割一切大模型介绍与使用(步骤 + 代码)
查看>>
OpenCV与AI深度学习 | T-Rex Label !超震撼 AI 自动标注工具,开箱即用、检测一切
查看>>
OpenCV与AI深度学习 | YOLO11介绍及五大任务推理演示(目标检测,图像分割,图像分类,姿态检测,带方向目标检测)
查看>>
OpenCV与AI深度学习 | YOLOv10在PyTorch和OpenVINO中推理对比
查看>>
OpenCV与AI深度学习 | YOLOv11来了:将重新定义AI的可能性
查看>>
OpenCV与AI深度学习 | YOLOv8自定义数据集训练实现火焰和烟雾检测(代码+数据集!)
查看>>
OpenCV与AI深度学习 | YOLOv8重磅升级,新增旋转目标检测,又该学习了!
查看>>
OpenCV与AI深度学习 | 一文带你读懂YOLOv1~YOLOv11(建议收藏!)
查看>>