【11-Ⅰ】Head First Java 学习笔记

devtools/2024/9/20 1:23:21/ 标签: java, 学习, 笔记

HeadFirst Java

本人有C语言基础,通过阅读Java廖雪峰网站,简单速成了java,但对其中一些入门概念有所疏漏,阅读本书以弥补。

第一章 Java入门
第二章 面向对象
第三章 变量
第四章 方法操作实例变量
第五章 程序实战
第六章 Java函数库
第七章 继承与多态
第八章 深入多态
第九章 构造器与垃圾收集器
第十章 数字与静态
第十一章 异常处理


前言

七八九章是Java中较新的知识点,这部分也是区别于C比较有趣的地方!建议大家多多回顾。不多废话,我们进入今天的正题。异常处理,也是Java中比较新的内容。
啥是异常?程序出现异常情况呗!你在想不对啊,编译器不是已经保证程序的正确性了吗?其实通过前文的学习我们知道,编译器保证的是编译期的一些安全问题,比如类型安全问题。在JVM运行期,还是会有其他错误、异常的。有些错误异常来自程序错误,在开发阶段我们就可以避免(数组越界),有些则得编写异常处理程序,比如预期某些文件在特定目录,但实际执行时,又找不到文件?

异常处理说的是:我们无法保证程序不会有异常,当在编写可能有异常的方法时,我们需要有处理异常状况的程序。接下来通过创建一个MIDI音乐播放器来介绍这一部分。这一直涉及到本章与后续两章内容!当然对于这一部分,我并不重点学习,对于本书,更侧重Java基础的学习,项目相关的API只做了解。
本章分为两小节介绍~
以下是第一小节。

开始

JavaSound API
Sequencer类

调用有风险的方法(可能是别人写的,也可以是自己写的)

异常处理机制:预先将处理错误情况的代码放在合适的位置。当然拟得先知道要调用的方法可能会产生异常
那么如何知道呢?——看方法的声明,会带有throws XXX

编写有风险方法的程序员,要考虑方法执行期间可能出问题,必须声明调用的风险(可能抛出的异常)

try/catch块
告诉编译器你知晓风险,并且做好准备了,编译器就会放心通过!

Exception类
在这里插入图片描述

在这里插入图片描述

编译器核对

1.如果抛出异常,必须throw声明
2.调用抛出异常方法,必须确定你知晓,即使用try/catch块

不检查异常:即编译器不会核对的异常,如RuntimeException的子类。你可以自己抛出与抓住,但没必要,编译器不管!
因为该类异常都是因为程序的逻辑问题,人可以确保程序避免这些问题,如数组越界,调用空指针对象等。但是那些找不到文件、服务器崩溃的异常咱们人没法保证不遇到!
try/catch块 用来处理真正的异常,而不是处理你的逻辑错误!它做的事是尝试恢复,至少是优雅的列出错误!

要点小结

java">throw new xxxEXception();//方法可以抛出异常对象
void xxx() throws Exception //方法声明异常

http://www.ppmy.cn/devtools/15983.html

相关文章

3ds Max2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 3ds Max是一款基于PC系统的强大3D建模、渲染和制作软件,广泛应用于游戏开发、影视后期制作、建筑设计、工业设计等多个领域。其拥有丰富的建模工具,可轻松创建逼真的三维场景和模型;同时&#…

大数据开发详解

点击下载《大数据开发详解》 1. 前言 随着信息化时代的快速发展,大数据已经成为了企业和组织不可或缺的重要资源。大数据开发则是指通过一系列技术手段,对海量数据进行收集、存储、处理、分析和挖掘,以实现数据的价值化利用。大数据开发涉及…

第十五届蓝桥杯省赛第二场C/C++B组G题【最强小队】题解

20pts 枚举所有可能的左端点、右端点,时间复杂度 O ( n 2 ) O(n^2) O(n2)。 对于每个区间进行遍历检测,时间复杂度 O ( n 3 ) O(n^3) O(n3)。 100pts 由于数据范围为 1 0 5 10^5 105,所以肯定只能进行一次枚举。 我们尝试枚举右端点&…

好用的在线客服系统PHP源码(开源代码+终身使用+安装教程) 制作第一步

创建一个在线客服系统是一个涉及多个步骤的过程,包括前端界面设计、后端逻辑处理、数据库设计、用户认证、实时通信等多个方面。以下是使用PHP制作在线客服系统的第一步:需求分析和系统设计。演示:ym.fzapp.top 第一步:需求分析 确…

设计模式学习

设计模式学习 设计模式学习策略模式策略模式适用于以下场景: 设计模式学习 策略模式 策略模式适用于以下场景: 对象有多种行为或算法,需要根据不同情况选择不同的算法。系统中有多个类实现相同的接口或继承相同的抽象类,但具体…

《LeetCode力扣练习》代码随想录——回溯算法(递增子序列---Java)

《LeetCode力扣练习》代码随想录——回溯算法&#xff08;递增子序列—Java&#xff09; 刷题思路来源于 代码随想录 491. 非递减子序列 回溯 class Solution {private List<Integer> path new ArrayList<>();private List<List<Integer>> result ne…

C#中=> “Lambda运算符”

在C#中&#xff0c;> 符号被称为“Lambda运算符”或“Lambda箭头”。它用于连接Lambda表达式中的参数列表和表达式主体&#xff0c;表示函数的输入和输出关系。因此&#xff0c;Lambda运算符充当了将参数映射到表达式的箭头。 Lambda运算符的左侧是参数列表&#xff0c;它们…

前端模块化整理汇总

AMD 异步加载&#xff0c;依赖前置&#xff0c;前置依赖建议写在前引用&#xff0c;在所有模块加载完成后立即执行回调函数&#xff0c;用户体验好&#xff0c;不容易造成卡顿 需要引用require.js //math.js define([], function () {function add(a, b) {return a b;}retur…

数据可视化(七):Pandas香港酒店数据高级分析,涉及相关系数,协方差,数据离散化,透视表等精美可视化展示

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

revit\navisworks各种安装问题

You have entered a nonvalid serial number &#xff0c;怎么都不给你一个机会输出序列号&#xff0c;怎么办&#xff1f; step1: C:\Program Files (x86)\Common Files\Autodesk Shared\AdskLicensing目录下找到uninstall.exe&#xff0c;右键管理员模式运行&#xff0c;会…

基于CANoe从零创建以太网诊断工程(3)—— Port Configuration 选项

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

蓝桥杯python考级整理

4_1:算术运算符 4_2:基本语法 4_3:基本语法 4_4:列表 4_5:函数 4_6:字符串 4_7:列表 4_8:逻辑运算符 4_9:字典 4_10:函数

mybatis映射postgres数据库的geometry类型

mybatis映射postgres数据库的geometry类型 文章目录 mybatis映射postgres数据库的geometry类型一、问题背景和需求描述二、解决步骤1、导入java类型转换需要的包2、自定义mybatis类型转换器(GeometryTypeHandler)3、注册类型转换器(springBoot项目)4、在实体类添加类型转换器…

Java中使用Graphics2D绘制字符串文本自动换行 算法

效果&#xff1a; 代码&#xff1a; /*** return void* Author xia* Description //TODO 写字换行算法* Date 18:08 2021/4/1* Param []**/private static void drawWordAndLineFeed(Graphics2D g2d, Font font, String words, int wordsX, int wordsY, int wordsWidth) {FontD…

【堆】Leetcode 347. 前 K 个高频元素【中等】

前 K 个高频元素 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2] 解题思路 1、使用哈希表来统计数组中每个元素的出现频率。2、使用最小堆&…

数组、链表、集合、table、map、二叉树、索引、数据库

数据结构&#xff1a;帮助数据快速读写的一种结构模型&#xff0c;数据库是 系统文件索引&#xff08;索引是各种数据结构提高数据检索以平衡数据读写速度&#xff0c;系统文件是存储用户真正的数据&#xff0c;比如业务表数据、文件、图片等等&#xff09; 1.数组&#xff1a…

前端数字计算精度问题

计算精度问题通常发生在浮点数运算中&#xff0c;由于浮点数的表示所限&#xff0c;可能导致精度损失。 举例 // 比如 0.1 0.2 // 结果为 0.30000000000000004 0.3 - 0.1 // 结果为 0.19999999999999996vue vue 使用decimal.js 解决小数相加合计精确度丢失问题 微信小程序 …

华纳云:怎么防止租用服务器的数据丢失?

要防止租用服务器上的数据丢失&#xff0c;可以采取以下一些措施&#xff1a; 定期备份数据&#xff1a;建立定期备份数据的机制&#xff0c;将重要数据备份到安全的地方&#xff0c;例如云存储服务、外部硬盘或者另一个服务器上。备份频率可以根据数据的重要性和变动频率来确定…

S32K的JLINK与PE接线方法与刷程序失败问题

S32K的JLINK与PE接线方法与刷程序失败问题 1、PE的接线方法2、JLINK的接线方法3、刷程序失败问题 1、PE的接线方法 2、JLINK的接线方法 3、刷程序失败问题 出现如下问题&#xff1a; Secure Debug might be enabled on this device.lf so.please unlock the device via PEmic…

【STM32HAL库】外部中断

目录 一、中断简介 二、NVIC 1.寄存器 2.工作原理 3.优先级 4.使用NVIC 三、EXTI 1.简介 2.AFIO&#xff1a;复用功能IO&#xff0c;主要用于重映射和外部中断映射配置​编辑 3. 中断使用 4.HAL库配置使用 一、中断简介 中断的意义&#xff1a;高效处理紧急程序&#xff0c;不会…