Java 【异常】

news2024/11/24 19:13:07

一、认识异常 Exception

Java 中,将程序执行过程中发生的不正常行为称为异常
异常是异常exception,报错是报错error

1.算数异常

0不能作为除数,所以算数异常

 2.空指针异常

arr不指向任何对象,打印不出arr的长度,空指针

3.数组下标越界异常

arr数组下标最大为2,没有100这个下标,访问就会报 数组下标越界异常

二、异常的体系结构 

1. Throwable 是异常体系的顶层类,其派生出两个重要的子类 , Error Exception
2. Error 指的是 Java 虚拟机无法解决的严重问题,比如: JVM 的内部错误、资源耗尽等 ,典型代表:
StackOverflflowError OutOfMemoryError ,一旦发生回力乏术。
3. Exception 异常产生后程序员可以通过代码进行处理,使程序继续执行。比如:感冒、发烧。我们平时所说
的异常就是 Exception

 1.异常的分类

异常可能在编译时发生,也可能在程序运行时发生,根据发生的时机不同,可以将异常分为:

1) 编译时异常

在程序编译期间发生的异常,称为编译时异常,也称为受检查异常 (Checked Exception)
例如:clone

 

2)运行时异常

        在程序执行期间发生的异常,称为运行时异常,也称为非受检查异常(Unchecked Exception)
RunTimeException 以及其子类对应的异常,都称为运行时异常
比如: NullPointerException空指针异常 、 ArrayIndexOutOfBoundsException数组下标越界异常、 ArithmeticException算数异常
注意:编译时出现的语法性错误,不能称之为异常。例如将 System.out.println 拼写错了 , 写成了
system.out.println. 此时编译过程中就会出错 , 这是 " 编译期 " 出错。而运行时指的是程序已经编译通过得到 class 文件了 , 再由 JVM 执行过程中出现的错误 .

2.异常处理

1) 防御式编程

错误在代码中是客观存在的
主要的方式

1. LBYL事前防御型:

Look Before You Leap. 在操作之前就做充分的检查. 即:事前防御型

缺陷:正常流程和错误处理流程代码混在一起 , 代码整体显的比较混乱

2. EAFP事后认错型:

It's Easier to Ask Forgiveness than Permission. "事后获取原谅比事前获取许可更容易". 也就是先操 作, 遇到问题再处理. 即:事后认错型

优势:正常流程和错误流程是分离开的 , 程序员更关注正常流程,代码更清晰,容易理解代码
异常处理的核心思想就是 EAFP
Java 中, 异常处理主要的 5 个关键字: throw try catch fifinal throws

3.异常的抛出

1)在方法的声明后,加上throws

加上之后,clone就不会报错了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/993868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【动态规划刷题 12】等差数列划分 最长湍流子数组

139. 单词拆分 链接: 139. 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: …

思腾合力GPU服务器

布局智能生产基地!经开区思腾合力超前助力“东数西算”! 2022-04-20 18:41泰达服务 算力作为数字经济的核心生产力,是国民经济发展的重要基础设施。经开区企业思腾合力在“十四五”开局之年打造出集研发、生产、制造为一体的人工智能产业园…

【C++】常用拷贝和替换算法

0.前言 1.copy #include <iostream> using namespace std;// 常用拷贝算法 copy #include<vector> #include<algorithm>void myPrint(int val) {cout << val << " "; }void test01() {vector<int>v;for (int i 0; i < 10; i…

@Autowired和@Resource

文章目录 简介Autowired注解什么是Autowired注解Autowired注解的使用方式Autowired注解的优势和不足 Qualifier总结&#xff1a; Resource注解什么是Resource注解Resource注解的使用方式Resource注解的优势和不足 Autowired vs ResourceAutowired和Resource的区别为什么推荐使用…

Django+Nginx+uWSGI+Supervisor实战

大家好&#xff0c;真的是许久没有更新文章了&#xff0c;甚是想念&#xff0c;最近这段时间事情很多&#xff0c;家里的事情、工作的事情&#xff0c;真没有太多时间去码文章&#xff0c;其实已经搁置了些许文章&#xff0c;没有整理&#xff0c;趁着这段时间风平浪静&#xf…

MSOS604A是德科技keysight MSOS604A示波器

181/2461/8938Infiniium S系列示波器融合了创新技术&#xff0c;旨在提供卓越的测量。新的10位ADC和低噪声前端技术协同工作&#xff0c;提供高达8 GHz的性能和业界最佳的信号完整性。一个高级框架&#xff0c;配有可快速启动的固态硬盘、可轻松触摸的15英寸电容式显示屏和可快…

洛谷P8814:解密 ← CSP-J 2022 复赛第2题

【题目来源】https://www.luogu.com.cn/problem/P8814https://www.acwing.com/problem/content/4732/【题目描述】 给定一个正整数 k&#xff0c;有 k 次询问&#xff0c;每次给定三个正整数 ni&#xff0c;ei&#xff0c;di&#xff0c;求两个正整数 pi&#xff0c;qi&#xf…

取消合并单元格并快速填充

例如&#xff1a; 步骤如下&#xff1a; 1/ 取消合并单元格 2/ 全选表格 3/ excel导航栏 - 开始 - 查找和选择- 定位条件 快捷键&#xff1a;ctrlG 4/ 选择“空值” - 点击确定 5/ 输入公式 “a2" 注意&#xff0c;自定定位在a3单元格 输入完公式后&#xff0c;按…

file-storage-sdk项目开发中的踩坑记录

文章目录 file-storage-sdk项目开发中的踩坑记录问题1&#xff1a;项目启动报错&#xff1a;Attribute "click" appears more than once in element问题2&#xff1a;前端对话框被遮挡问题3&#xff1a;RequestBody无法接收表单数据问题4&#xff1a;文件上传失败问题…

WebServer 解析HTTP 响应报文

一、基础API部分&#xff0c;介绍stat、mmap、iovec、writev、va_list 1.1 stat​ 作用&#xff1a;获取文件信息 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h>// 获取文件属性&#xff0c;存储在statbuf中 int stat(const char *…

Excel必备!6种快速插入√或x标记的方法揭秘

本教程展示了在Excel中插入勾或叉的六种不同方法。Excel中有两种复选标记——交互式复选框和勾号符号。 勾选框,也称为复选框或复选标记框,是一种特殊控件,允许你通过鼠标单击来选择或取消选择某个选项,即选中或取消选中勾选框。​ 勾号符号,也称为复选符号或复选标记,…

小程序排名优化全攻略

随着小程序的快速发展,小程序之间的竞争也日益激烈。如何在竞争对手众多的环境下脱颖而出,通过小程序排名优化来提高曝光率和流量转化率,已成为许多小程序开发者和运营者关注的重点。本文将全面解析小程序排名优化的方法,让您可以更好地提升小程序的搜索排名。 【名即微】 小程…

开目软件携手纷享销客共建CRM平台,数智推动规模化发展

在制造业升级转型、工业化与信息化深度融合的浪潮下&#xff0c;一批提供制造业数字化赋能的工业软件服务商趁势发力&#xff0c;迎来广阔发展空间。 武汉开目信息技术股份有限公司&#xff08;以下简称“开目软件”&#xff09;是中国高端工业软件领导品牌&#xff0c;凭借自…

Hadoop生态圈中的Hive数据仓库技术

Hadoop生态圈中的Hive数据仓库技术 一、Hive数据仓库的基本概念二、Hive的架构组成三、Hive和数据库的区别四、Hive的安装部署五、Hive的基本使用六、Hive的元数据库的配置问题七、Hive的相关配置项八、Hive的基本使用方式1、Hive的命令行客户端的使用2、使用hiveserver2方法操…

如何预防最新的Mallox变种malloxx勒索病毒感染您的计算机?

导言&#xff1a; 在数字时代&#xff0c; .malloxx 勒索病毒的威胁一直悬在我们头上&#xff0c;如何应对这种威胁&#xff0c;以及在数据被勒索后如何恢复它们&#xff0c;都是备受关注的话题。本文91数据恢复将向您介绍 .malloxx 勒索病毒的独特工作方式&#xff0c;提供与众…

APP启动优化Android篇

背景 为什么重提启动优化&#xff1f;首先&#xff0c;用户进入APP唯一的路径就是启动&#xff0c;这是体验核心链路的第一环。启动分为冷启动、热启动和温启动&#xff0c;本文中「启动」一词如果没有特别说明&#xff0c;均为冷启动。启动时间过长&#xff0c;会造成用户流失…

l8-d10 TCP协议是如何实现可靠传输的

一、TCP主要特点 TCP 是面向连接的运输层协议&#xff0c;在无连接的、不可靠的 IP 网络服务基础之上提供可靠交付的服务。为此&#xff0c;在 IP 的数据报服务基础之上&#xff0c;增加了保证可靠性的一系列措施。 TCP主要特点 1.TCP 是面向连接的运输层协议。 每一条 TCP 连…

【侯捷】C++面向对象 (上)

1.C 编程简介 & 目标 培养代码正规编范class 分为 带pointer 和 不带pointer的 学习C &#xff1a; 语言 标准库 2.C vs C C语言 &#xff1a; &#xff08;type&#xff09;数据 函数 —create—》 数据sC &#xff1a; (class ) 数据 成员 —create—》 对象不带指…

【山河送书第十期】:《Python 自动化办公应用大全》参与活动,送书两本!!

【山河送书第十期】&#xff1a;《Python 自动化办公应用大全》参与活动&#xff0c;送书两本&#xff01;&#xff01; 前言一书籍亮点二作者简介三内容简介四购买链接五参与方式六往期赠书回顾 前言 在过去的 5 年里&#xff0c;Python 已经 3 次获得 TIOBE 指数年度大奖&am…