首页 > 其他分享 >12月11日

12月11日

时间:2025-01-10 18:22:52浏览次数:1  
标签:11 12 自定义 检查 处理 DataFormatException IOException 异常

今日继续深入研读了Java中的异常处理机制
Java中的异常主要分为两大类:受检查异常(checked exceptions)和非受检查异常(unchecked exceptions)。

受检查异常:是指那些在编译时需要显式处理的异常,如IOException、SQLException等。这类异常通常与程序的运行环境相关,如文件操作、网络通信等。当方法中可能出现受检查异常时,要么在方法内部通过try-catch语句捕获并处理,要么在方法签名中通过throws关键字声明抛出该异常,告知调用者需要处理该异常。
例如:public void readFile() throws IOException {
FileReader fileReader = new FileReader("example.txt");
// 文件读取操作
}在这个方法中,通过throws IOException声明了可能抛出IOException异常,调用该方法时就需要处理这个异常。
非受检查异常:包括运行时异常(RuntimeException)及其子类,如NullPointerException、ArrayIndexOutOfBoundsException等。这类异常通常是由程序的逻辑错误引起的,如访问空对象的成员、数组索引越界等。Java编译器不会强制要求程序员处理这些异常,但合理地处理它们可以避免程序在运行时突然崩溃。例如,在访问数组元素之前,可以先检查索引是否越界:
int[] array = {1, 2, 3};
if (index >= 0 && index < array.length) {
System.out.println(array[index]);
} else {
throw new ArrayIndexOutOfBoundsException("索引越界");
}
在某些情况下,Java内置的异常类型可能无法完全满足特定业务场景的需求,这时可以自定义异常类。自定义异常类需要继承自Exception类(受检查异常)或其子类,如RuntimeException(非受检查异常)。通过自定义异常,可以更精准地描述业务错误,为异常处理提供更丰富的信息。

例如,定义一个用于表示用户输入数据格式不正确的自定义异常类:
public class DataFormatException extends Exception {
public DataFormatException(String message) {
super(message);
}
}
在业务逻辑中,当检测到用户输入的数据不符合要求时,就可以抛出这个自定义异常:
public void processData(String data) throws DataFormatException {
if (!isValid(data)) {
throw new DataFormatException("数据格式不正确");
}
// 处理数据
}

标签:11,12,自定义,检查,处理,DataFormatException,IOException,异常
From: https://www.cnblogs.com/wenbushi-dream/p/18664471

相关文章

  • 12月13日
    今天主要学习了Java中的集合框架,这是Java编程中用于存储和管理对象集合的强大工具,它提供了一系列灵活的数据结构,能够满足不同的数据存储和操作需求。Java集合框架是一个统一的架构,用于表示和处理对象集合。它主要包含三大接口:Collection、Map以及它们的子接口和实现类。Collecti......
  • 12月14日
    昨日初步了解了集合框架的定义,今天深入了解建立集合框架添加元素:使用add方法(List和Set)或put方法(Map)向集合中添加元素。例如:javaListlist=newArrayList<>();list.add("Java");list.add("Python");Setset=newHashSet<>();set.add("Java");set.add("Python&......
  • 12月10日总结
    今天在哔哩哔哩学习了web前端页面的开发的相关知识,Web前端页面的开发是构建和优化网站用户界面的过程,主要包括实现用户界面的结构(HTML)、样式(CSS)和交互(JavaScript)功能。以下是对web前端页面开发的具体介绍:HTML:HTML用于定义网页的结构和内容,是构建网页的基础。通过使用各种标签,如标......
  • 12月11日总结
    今天复习了顺序表,顺序表是线性表的一种存储结构,它把线性表中的所有元素按照其逻辑顺序,依次存储到从计算机存储器中指定存储位置开始的一块连续的存储单元中。简单来说,就是用一组连续的内存单元来存放数据元素,数据元素之间的逻辑关系通过物理存储位置相邻来体现。优点有:随机访问......
  • 单片机实物成品-011 火灾监测
    火灾监测(20个版本)版本20:oled显示+温湿度+烟雾浓度+火焰传感器+天然气浓度+窗户+风扇+水泵+排气系统+声光报警+语音播报+按键+WIFI模块-----------------------------------------------------------------------------https://www.bilibili.com/video/BV1N6YaekEgw/?spm_id......
  • YOLOv11改进,YOLOv11自研检测头融合HyCTAS的Self_Attention自注意力机制(2024),并添加小目
    摘要论文提出了一种新的搜索框架,名为HyCTAS,用于在给定任务中自动搜索高效的神经网络架构。HyCTAS框架结合了高分辨率表示和自注意力机制,通过多目标优化搜索,找到了一种在性能和计算效率之间的平衡。#理论介绍自注意力(Self-Attention)机制是HyCTAS框架中的一个重要组......
  • 【C++】C++11(二)
    目录九、可变参数模板十、lambda表达式10.1C++98中的一个例子10.2lambda表达式10.3lambda表达式语法10.3.1lambda表达式各部分说明10.3.2捕获列表说明10.4函数对象与lambda表达式十一、包装器11.1function包装器11.2bind十二、线程库12.1线程12.1.1thread......
  • PY_11_02
    前言PY_11_02抄就行了......
  • CH585的SPI驱动WS2812
    目录链接:https://pan.baidu.com/s/1Su5dgmVWLre5kH2fYiGwQQ?pwd=wch6CH573系列/583系列/592系列MCU,在使用SPI模拟WS2812波形时,MISO-PA15引脚上的实时电平,会影响MOSI-PA14引脚上的空闲电平状态,故建议SPI驱动WS2812的场景下,固定PA15的电平,不要接其他外设。异常场景:当PA15引脚上......
  • Navicat Premium 12 破解版下载及安装教程
    前言NavicatPremium是一套可创建多个连接的数据库开发工具,让你从单一应用程序中同时连接MySQL、MariaDB、MongoDB、SQLServer、Oracle、PostgreSQL和SQLite。它与OceanBase数据库及AmazonRDS、AmazonAurora、AmazonRedshift、MicrosoftAzure、OracleCloud、Mongo......