异常(Exception)的学习

1.Throwsable 的两个子类 Exception 和 Error

2.Exception 这是编译期异常,可以捕获处理

3.RuntimeException 表示运行期间的异常,它是 Exception 的子类

4.Error 这是程序错误,不可捕获处理。例如,内存溢出

5.throws 关键字,用于声明可能抛出编译异常,让调用者处理异常。抛出的如果是运行时异常,则可以不声明。方法内使用 throw 关键字抛出编译时异常,就必须使用关键字 throws 在方法签名处声明可能抛出的异常

6.如果异常抛给 JVM 处理,JVM 会打印异常信息,然后直接停止程序

7.使用 try…catch 捕获异常,后面的程序照常执行

运行期异常:
NullPointerException
ArrayIndexOutOfBoundsException,继承自 IndexOutOfBoundsException

编译期异常:
FileNotFoundException,它继承自 IOException
IOException,它继承自 Exception

自定义异常类:
继承自 Exception,是编译时异常
继承自 RuntimeException,是运行时异常,无需处理

代码示例:

public class Demo01Exception {public static void main(String[] args) {try {readFile("/users/home/test.txt");System.out.println(8888); // 捕获到异常,此行代码不会执行} catch (IOException e) {e.printStackTrace();} finally {System.out.println(5555); // 有没有异常,此行代码都会执行}System.out.println(9999); // 有没有异常,此行代码都会执行}static void readFile(String path) throws IOException {if (!path.endsWith(".txt")) {throw new IOException("文件格式不对");}System.out.println(7777); // 抛出异常,此行代码不会执行}public boolean findUserByAccountName(String accountName) {try {return true;} catch (Exception e) {e.printStackTrace();} finally {	// 上面return后,这行代码也会执行,也就是说return后,方法并没有立刻结束执行,而是会继续找寻是否存在finally块,存在则执行内部的代码,执行完后方法才结束执行,并将结果值返回给调用处System.out.println("关闭资源!");}return false;
}}

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

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

相关文章

recorder_将Java Flight Recorder与OpenJDK 11一起使用

recorderJava Flight Recorder(JFR)曾经是Oracle JDK的商业附加组件。 由于它最近与Java Mission Control一起开源,因此使用OpenJDK 11的每个人现在都可以免费使用此出色的工具对Java应用程序进行故障排除。 JFR以前是专有解决方案&#xff0…

mysql 酒店管理设计_酒店管理系统的设计与实现(Myeclipse,MySQL)

酒店管理系统的设计与实现(Myeclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文12000字,程序代码,MySQL数据库)本系统是一个酒店管理系统,以Java Web技术为基础,采用MVC设计模式,利用MyEclipse编程平台结合MySQL数据库&…

可以在循环体内声明局部变量吗?

循环体声明的局部变量,第一次创建后,后面每次循环就不会再创建了。因为 JVM 在执行创建局部变量代码时,会先查询是否存在同名的局部变量,若存在则不会创建。如果有赋值,则直接删除旧的数据,保存新的数据&am…

传一个实体一个string_没想到,一个小小的String还有这么多窍门

1. 看看源码大家都知道, String 被声明为 final,因此它不可被继承。(Integer 等包装类也不能被继承)。我们先来看看 String 的源码。在 Java 8 中,String 内部使用 char 数组存储数据。在 Java 9 之后,String 类的实现…

envoy api 网关_在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南...

envoy api 网关最近, Envoy已成为流行的网络组件。 马特克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线向右移的部分原因。 他称该博客为“通用数据平面API”。…

d3.js和mysql_如何从mysql数据库中提取数据并使用D3.JS进行可视化?

以下是一个php脚本,您应该可以将其保存在某个文件中(假设您称之为“getdata.php”),可以从您的HTML文件中访问,其中包含D3代码.调用时,它将以json格式从MySQL数据库返回数据(只要数据库服务器不在您的域之外);$username "******";$password "******";$ho…

apigee 安装_APIGEE – API网关简介

apigee 安装在本文中,我想简要介绍一下APIGEE。 APIGEE主要提供现成的以下功能作为api网关。 协议转换 与任何协议(包括SOAP,REST,XML二进制或自定义)进行转换 交通管理 开箱即用的灵活,分布式配额管理…

linux mysql 忘记root密码_Linux MySQL忘记root密码解决方案

在使用MySQL数据库时,由于某些原因长时间没有登陆MySQL,或者由于工作交接完成度不高,导致数据库root登陆密码忘记,如何解决?一、更改my.cnf配置文件1、用命令编辑/etc/my.cnf配置文件,即:vim /e…

Java编程中如何获取项目文件的路径/文件路径

// 获取类加载器 ClassLoader cl JDBCUtils.class.getClassLoader(); // 获取文件的统一资源定位器对象 URL url cl.getResource("db_config.properties"); // 获取文件的路径 String path url.getPath();

inmemory_通过Spring Boot了解H2 InMemory数据库

inmemory介绍 基本上,数据库设置涉及几个步骤,然后才能在应用程序中通过已配置的数据源使用它。 在实际项目实施中,这实际上是必需的。 但是,在某些情况下,我们只需要为某件事完成POC,并且整个数据库设置工…

mysql 查询分组平均数_9、mysql分组查询-----group by 和 having

举例说明:有 Store_Information表之前我们根据这个表,用函数可以算出sales的总和,平均数等如果现在我们需要算出每一间店(store_name)的销售总额(sales)呢?比如:1、los angeles 销售额加起来是 18000san diego…

macOS彻底卸载/删除Microsoft相关的程序

cd /Library/Application\ Support/ # 可以将目录Microsoft整个删除 sudo rm -rf Microsoft # 如果要单独删除微软的自动更新程序,可以进入 cd Microsoft/MAU2.0 # 删除程序文件Microsoft AutoUpdate.app sudo rm -rf Microsoft\ AutoUpdate.app # 进入~/Library/Pr…

java 字符串文字筛选_重新开始Java的原始字符串文字讨论

java 字符串文字筛选在2018年12月宣布 将从JDK 12中删除原始字符串文字 。 现在,在新的一年中,与Java中原始字符串文字的设计有关的讨论又开始了。 在琥珀色专家OpenJDK邮件列表上的“ 原始字符串文字-重新开始讨论 ”一文中 ,Brian Goetz参…

mysql event 日志_MySQL Event计划任务刷慢日志

前言最近在尝试一个日志系统graylog来收集mysql的慢查询日志提,供后续的分析、监控和报警等。测试步骤已经到日志已成功收集到graylog,测试时需要刷一些慢查询日志出来。为了刷比较多的日志和不对测试环境造成较大的影响,想到了使用mysql的sl…

aws lambda_API网关和AWS Lambda进行身份验证

aws lambda当Foreach最初踏上微服务之路时,我们并没有真正构建微服务。 我们以为我们做到了,但是我们所有的服务中总存在一些逻辑。 当然,每个服务实际上应该只专注于自己的任务,而不应该专注于属于另一个微服务的事物。 我们这方…

refreshtoken用mysql_微信access_token和refresh_token保存于redis

此处以保存用户授权access_token为例,接口调用access_token可在项目启动时进行缓存。部分代码如下:Autowiredprivate RedisTemplate redisTemplate;Value("${myapp.redisWxUserAccessToken}")private String redisWxUserAccessToken;// 获取pu…

JDBC的基本使用

文章目录概念基本使用步骤详解各个对象DriverManager注册驱动获取数据库连接Connection获取执行 SQL 语句的对象事务管理Statement执行 SQL 语句ResultSetPreparedstatement概念 Java DataBase Connectivity Java 数据库连接,即使用 Java 语言操作数据库 JDBC本质…

sqlrelay mysql_php+sqlrelay+mysql实现连接池及读写负载均衡

phpsqlrelaymysql实现连接池及读写负载均衡上一篇 /下一篇 2008-04-02 18:25:19/ 个人分类:MySQL作者:ziqiusqlrelay.jpg(20.33 KB)2007-8-31 14:26在大型的web应用中数据库经常成为并发访问的一个瓶颈,为了有效的解决并发访问的瓶颈&#x…

maven 文件上传下载_使用Maven将文件上传和下载到S3

maven 文件上传下载多年来,我已经看到许多团队以许多不同的方式使用Maven。 Maven可用于许多ci / cd任务,而无需使用额外的管道代码,或者可用于在运行某些测试之前准备开发环境。 通常,它是一种方便的工具,在Java团队…