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

Java中的异常总结

异常的基本概念

  • 异常(Exception):表示程序在执行过程中出现的错误或异常情况。异常通常表示程序的非正常状态,需要处理以防止程序崩溃。
  • 错误(Error):表示虚拟机出现的严重问题,通常不应该被程序捕获,如内存溢出(OutOfMemoryError)。通常使用 Error 类及其子类来表示。

2. 异常类体系

  • Throwable:所有错误和异常的根类,分为两个主要子类:
    • Exception:所有可捕获的异常类的父类。可以分为两种类型:
      • Checked Exception(检查型异常):必须被显式捕获或声明抛出。例如 IOExceptionSQLException
      • Unchecked Exception(运行时异常):不需要被显式捕获或声明抛出。包括 RuntimeException 及其子类,如 NullPointerExceptionArithmeticException
    • Error:表示程序无法恢复的错误,如 OutOfMemoryErrorStackOverflowError

3. 异常处理

3.1. 异常的抛出(throw

使用 throw 关键字抛出一个异常实例

3.2. 异常的捕获(try-catch

使用 try-catch 语句块来捕获并处理异常

3.3. 异常的处理(finally

finally 块用于执行清理操作,无论是否发生异常都会执行

3.4. 异常的声明(throws

在方法签名中使用 throws 声明该方法可能抛出的异常

4. 自定义异常

你可以创建自己的异常类,通常继承自 ExceptionRuntimeException

public class CustomException extends Exception {public CustomException(String message) {super(message);}
}

使用自定义异常:

public void validate(int age) throws CustomException {if (age < 0) {throw new CustomException("Age cannot be negative");}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • InternLM Git 基础知识
  • SAPUI5基础知识20 - 对话框和碎片(Dialogs and Fragments)
  • 需要消化的知识点
  • leetcode贪心(1833. 雪糕的最大数量)
  • elementplus菜单组件的那些事
  • C语言 之 理解指针(4)
  • idea常用免费插件(持续更新欢迎补充)
  • AI作图接口要怎么调用呢?
  • 论文阅读-《Distant Supervision for Relation Extraction beyond the Sentence Boundary》
  • python+vue3+onlyoffice在线文档系统实战20240725笔记,首页开发
  • Linux第四章课后作业(ssh)
  • 又一新AI搜索工具,OpenAI 推出新的搜索方式 SearchGPT
  • 实战:Zookeeper 简介和单点部署ZooKeeper
  • 计算机的错误计算(四十六)
  • 构建实时Java数据处理系统:技术与实践
  • 自己简单写的 事件订阅机制
  • Apache的80端口被占用以及访问时报错403
  • Consul Config 使用Git做版本控制的实现
  • js正则,这点儿就够用了
  • Octave 入门
  • python docx文档转html页面
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • V4L2视频输入框架概述
  • vue数据传递--我有特殊的实现技巧
  • WePY 在小程序性能调优上做出的探究
  • Zsh 开发指南(第十四篇 文件读写)
  • 基于Android乐音识别(2)
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 一些css基础学习笔记
  • 优化 Vue 项目编译文件大小
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • !!Dom4j 学习笔记
  • #APPINVENTOR学习记录
  • #include到底该写在哪
  • (AngularJS)Angular 控制器之间通信初探
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (自适应手机端)行业协会机构网站模板
  • ***详解账号泄露:全球约1亿用户已泄露
  • .gitignore文件---让git自动忽略指定文件
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .Net接口调试与案例
  • .NET开发者必备的11款免费工具
  • .NET文档生成工具ADB使用图文教程
  • .NET序列化 serializable,反序列化
  • .sh 的运行
  • @Bean注解详解
  • @RequestMapping-占位符映射
  • []Telit UC864E 拨号上网
  • [2023-年度总结]凡是过往,皆为序章
  • [Angular] 笔记 9:list/detail 页面以及@Output
  • [CISCN 2023 初赛]go_session