异常..

1.开发过程中的错误

在开发Java程序的过程中 会遇到各种各样的错误 一下是对错误的分类:
1.语法错误
如果产生了语法错误的话 那么就会导致编译失败 程序无法正常运行
2.逻辑错误
比如原本我想要进行加法运算 但是我将加法运算符写成了减法运算符 但是这个错误并不致命 也就是说 不会导致编译失败进而程序无法运行
3.运行时错误
就是程序运行过程中产生的以外 会导致程序终止运行 这个错误在Java中也叫做异常

程序如果产生了异常 一般我们称之为:抛出了异常 如果我们没有主动去处理他的话 那么他就会终止程序的运行

2.异常

上面说了 异常就是运行时抛出的错误 如果没有主动去处理他的话 那么就会导致程序的终止运行
在Java中 异常有很多种
所有的异常都是继承自java.lang.Throwable(虽然Throwable的后缀able写的有点像接口 但是实际上他是一个类)
在这里插入图片描述

如何防止程序抛出异常而导致其终止运行呢?1.try-catch方法 2.throws方法

3.异常的种类

我们可以分成两种异常 一种是检查型异常 一种是非检查型异常
前者的话 一般通过修改代码的方式难以避免 并且编译器会检查这个异常(如果开发者没有处理这个异常的话 那么编译器就会报错)
哪些是检查型异常呢?除了RuntimeException和Error以外的异常
后者的话 一般可以避免 并且编译器也不会进行异常的检查(如果开发者没有处理这个异常的话 那么编译器是不会报错的)
哪些是非检查型异常呢?RuntimeException和Error这些异常

1.常见的检查型异常

如果存在潜在的异常的话 那么就需要我们进行处理 处理的方式可以是try-catch 也可以是throws
1.可能会抛出FileNotFoundException异常(如果指定文件不存在的话 就会抛出FileNotFoundException这个异常 并且代码的修改无法左右文件的存在性 可以通过throws的方式处理这个异常)

static void test1() throws FileNotFoundException {FileOutputStream fos = new FileOutputStream("D:\1.txt");
}

2.解析日期的时候可能会抛出ParseException异常(如果解析的对象的格式和SimpleDateFormat指定的格式不一致的话 那么就会抛出ParseException这个异常 代码的修改无法解决这个异常 可以通过throws的方式进行处理)
(SimpleDateFormat.format()主要用于对未格式化的Date进行格式化操作 并且返回一个字符串
SimpleDateFormat.parse()主要用于对已格式化的字符串进行解析操作 并返回一个Date)

static void test2() throws ParseException {SimpleDateFormat fos = new SimpleDateFormat("yyyy-MM-dd");fos.parse("2022年10月11日");
}

3.程序睡眠的代码可能会抛出InterruptedException异常 需要我们主动处理 否则编译器就会检查并且报错

static void test3() throws InterruptedException {Thread.sleep(2000);
}

4.根据类名找到指定类 然后创建相应的类实例 其中的话 可能会抛出三个异常 一种是如果不存在指定类名的类的话 那么就会抛出ClassNotFoundException异常 一种是如果指定类中没有无参构造方法的话 那么就会抛出InstantiationException 一种是如果无参构造方法的权限为私有的话 那么外界无法访问 就会抛出IllegalAccessException

public class Dog {
}
static void test4() throws ClassNotFoundException, IllegalAccessException, InstantiationException {Class cls = Class.forName("Dog");Dog dog = (Dog)cls.newInstance();// 调用Dog中的无参构造方法进行Dog的实例化操作
}

其中的话 我们如果只根据Dog找到指定的类是不现实的 因为如果这个项目中存在多个Dog类的话 那么你应该去找谁呢 不知道 所以只能够写清楚全名 才能够解决ClassNotFoundException异常 并且由于我们的构造方法是公有且无参的 所以现在就不会因为异常而导致程序终止运行

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPv6和IPv4在技术层面的区别

随着互联网的不断发展,IPv4地址资源已经逐渐枯竭,而IPv6地址的使用逐渐成为趋势。IPv6和IPv4作为互联网协议的两个版本,在技术层面存在许多区别。本文将从地址空间、地址表示方法、路由协议、安全性、移动性以及网络性能等方面对IPv6和IPv4进…

免费搭建ip代理池的保姆级方法(最详细最有效)

IP代理池是一个用于管理和提供代理IP地址的系统或服务。在网络中,IP代理池的主要目的是帮助用户隐藏其真实IP地址,以实现一些特定的目标,如爬取网站数据、访问受限制的内容或保护个人隐私等。以下是对IP代理池的解释: IP代理的概念…

PDF.js实现搜索多个不同的关键词高亮显示效果

static\PDF\web\viewer.js 392行左右 // 自定义搜索关键词---------------------------------------- this.searchKeywords = keyword => {if (typeof PDFViewerApplication !== undefined) {PDFViewerApplication.eventBus.dispatch(find, {query: keyword,caseSensitive:…

十种常见的DNS攻击类型

文章目录 前言一、十种常见的DNS攻击情况(一)DNS缓存投毒攻击攻击原理防护建议 (二)分布式反射拒绝服务攻击原理防护建议 (三)DNS隧道攻击攻击原理防护建议 (四)TCP SYN洪水攻击攻击…

【数据结构】八大排序之快速排序算法

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.快速排序简介及思路 二.快速排序代码实现的三种方式 📌左右交换法 📌挖坑填坑法 📌前后指针法 三.快速排序的时间复杂度分析…

读算法霸权笔记12_数据科学

1. 公平与公正 1.1. 公平大多数时候只是副产品 1.2. 由贪婪或偏见导致的不公正一直发生在我们身边 1.2.1. 如果承认法律面前人人平等,或者作为选民的大众应该被平等对待,我们就不能允许模型把我们分为不同的群体进行区别对待 1.3. 对于数学模型来说&…

学习Redis缓存

学习Redis缓存 NoSQL和SQL的区别缓存缓存作用缓存成本添加Redis缓存 Redis特征Redis中数据结构Redis通用命令String类型Key的层级格式Hash类型Redis的Java客户端 NoSQL和SQL的区别 缓存 缓存就是数据交换的缓冲区,是存储数据的临时地方,一般读写性比较高…

香橙派5b 移植 imx415

香橙派5b 移植 imx415 镜头配置 Sensor选用如下型号:香橙派OrangePi_5 RK3588S IMX415 我使用的时候更换了镜头,将该sensor装在了我的变焦780模组上,经过后续测试因为CAM1相对稳定,所以安装在CAM1。安装位置如下: 配…

三英战吕布web3游戏项目启动全流程

项目是一个学习相关的很好的例子并且开源,原本的项目是连接goerli网络,但我把它修改为可连接ganache网络的项目了,更方便启动。 智能合约部分 进入文件 hardhat.config.js ,增加一个钱包私钥 2.执行npm install 3.测试合约 npx ha…

分解质因数算法总结

知识概览 n中最多只包含一个大于的质因子。 例题展示 题目链接 活动 - AcWing 系统讲解常用算法与数据结构,给出相应代码模板,并会布置、讲解相应的基础算法题目。https://www.acwing.com/problem/content/869/ 题解 分解质因数可以用试除法解决&…

高压放大器输出接法及其注意事项

高压放大器应用场景非常广泛,非常适用于半导体高压驱动、TFT产业高压驱动、各种高压工程等应用;也很适用当作音频信号产生器或函数波形产生器的波形放大使用。使用场景广泛,放大器的输出接法也多种,对于不同的放大器也有对应的输出…

计算机网络(7):网络安全

网络安全问题 计算机网络上的通信面临以下的四种威胁: (1)截获(interception)攻击者从网络上窃听他人的通信内容。 (2)中断(interruption)攻击者有意中断他人在网络上的通信。 (3)篡改(modification)攻击者故意篡改网络上传送的报文。 (4)伪造(fabrication)攻击者伪造信息在网…