【JavaSE】异常(学习笔记)

一、异常概述

异常:程序出错了

1、异常的分类

  1. 编译时异常:受检异常
  2. 运行时异常:非受检异常

2、异常体系:Throwable

  1. Error:严重问题,不需要处理
  2. Exception:异常类,程序本身可以处理
    1. RuntimeException:编译器不检查,犯错后再改
    2. 非RuntimeException:编译期需要修改,不改过不了编译

3、JVM的默认处理方法

  1. 把异常信息(名称,原因,位置)输出在控制台
  2. 程序停止运行

二、异常处理

1、try…catch…finally…

try{可能异常的代码;
} catch(异常类名 变量名) {异常的处理代码;
} finally {执行清除操作;
}

执行完毕后,程序还能继续运行

无论如何,都会执行finally里的操作

2、throws

方法 throws 异常名;

延迟处理异常:把异常抛出去,用的时候再处理 --> 甩锅

三、Throwable的成员方法

1. getMessage()

返回throwable的详细信息字符串(最简短)

//定义
public String getMessage()
//使用
sout(e.getMessage());

2. toString()

返回可抛出的简短描述

//定义
public String toString()
//使用
sout(e.toString());

3. printStackTrace()

把错误信息输出在控制台(最完全)

//定义
public void printStackTrace()
//使用
e.printStackTrace();

四、自定义异常

public class 异常类名 extends Exception {无参构造带参构造(String message){super(message);}
}

throw:手动抛出自定义异常对象

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

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

相关文章

MYSQL报错 [ERROR] InnoDB: Unable to create temporary file; errno: 0

起因 服务器的mysql不支持远程访问,在修改完相关配置后重启服务出错。 2023-12-03T10:12:23.895459Z 0 [Note] C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe (mysqld 5.7.22-log) starting as process 15684 ... 2023-12-03T10:12:23.908886Z 0 [Note…

Google Guava 事件总线工具使用详解

文章目录 事件总线特点使用 事件总线 Guava 事件总线(EventBus)是 Google Guava 库中的一个组件,用于实现发布-订阅模式的事件通信。它提供了一种简单而强大的方式,让不同的组件之间能够解耦、相互通信、完成事件处理。 特点 注…

C语言--每日选择题--Day33

第一题 1. 在以下给出的表达式中&#xff0c;与do-while(E)语句中的(E)不等价的表达式是&#xff08; &#xff09; A&#xff1a;(!E 0) B&#xff1a;(E > 0 || E < 0) C&#xff1a;(E 0) D&#xff1a;(E ! 0) 答案及解析 C 首先要知道(E)这个条件成立无非两种&…

nodejs基于vue的社区物业缴费报修管理系统7vwc6

运行软件:vscode 前端nodejsvueElementUi 语言 node.js 框架&#xff1a;Express/koa 前端:Vue.js 数据库&#xff1a;mysql 开发软件&#xff1a;VScode/webstorm/hbuiderx均可 数据库用MySQL,后台用vue框架 基本要求&#xff1a; 1. 对项目进行详细实际的需求分析。 2. 在网…

前端面试灵魂提问(1)

1.自我介绍 2.在实习中&#xff0c;你负责那一模块 3.any与unknow的异同 相同点&#xff1a;any和unkonwn 可以接受任何值 不同点&#xff1a;any会丢掉类型限制&#xff0c;可以用any 类型的变量随意做任何事情。unknown 变量会强制执行类型检查&#xff0c;所以在使用一个…

小杨X型矩阵

对于这道题&#xff0c;我们首先需要了解它的思路 他一共要考虑两条线 左斜线和右斜线 --- --- ---- --- --- 像上面这样&#xff1b; 两条线的判断条件分别为 ij 及 ijn1 代码如下&#xff1a; #include<iostream> using namespace std; int main() {int n;cin&g…

2024年天津财经大学珠江学院专升本专业课报名缴费操作流程

天津财经大学珠江学院专升本专业课报名缴费操作流程 天津财经大学珠江学院专升本专业课报名就是缴费&#xff0c;只需要使用中国银行交专业课报名费即可。 缴费操作流程如下&#xff1a; 登录中国银行手机 APP—点击“生活”—在界面 最左上角选择定位为“天津市”—点击“生…

❀My学习Linux命令小记录(6)❀

目录 ❀My学习Linux命令小记录&#xff08;6&#xff09;❀ 26.ps指令 27.grep指令 28.awk指令 29.sed指令 30.wc指令 ❀My学习Linux命令小记录&#xff08;6&#xff09;❀ 26.ps指令 功能说明&#xff1a;报告当前系统的进程状态。 (ps.ps命令 用于报告当前系统的进…

Jupyter NoteBook未授权访问漏洞

任务一&#xff1a; 复现未授权访问的漏洞 任务二&#xff1a; 利用Jupter Notebook控制台执行系统命令&#xff0c;读取/etc/passwd内容 1.搭建环境 2.new下面直接进入终端&#xff0c;而且也不需要登录&#xff0c;我就直接进入了管理界面 3.直接把指令输入进入&#xf…

linux 下ttyAMA0,ttyS0,ttyUSB0啥区别

技术上讲&#xff0c;ttyS0 的原始含义似乎是“第一个串行端口*使用与原始 IBM PC UART、8250 芯片兼容的 UART 实现。ARM 上的 ttyAMA0 和例如 ttySAC0 将意味着“使用另一个特定硬件实现实现的第一个串行端口”。ttyUSB0 指的是第一个 USB 到串行转换器。ttyACM0 指的是使用 …

【自动化测试教程】Java+Selenium自动化测试环境搭建

本主要介绍以Java为基础&#xff0c;搭建Selenium自动化测试环境&#xff0c;并且实现代码编写的过程。 1.Selenium介绍 Selenium 1.0 包含 core、IDE、RC、grid 四部分&#xff0c;selenium 2.0 则是在两位大牛偶遇相互沟通决定把面向对象结构化&#xff08;OOPP&#xff09…

【NGINX--11】利用访问日志、错误日志和 请求跟踪进行调试和故障排除

1、配置访问日志 需要配置访问日志格式&#xff0c;以将内置变量添加到请求日志中。 配置访问日志格式&#xff1a; http {log_format geoproxy[$time_local] $remote_addr $realip_remote_addr $remote_user $proxy_protocol_server_addr $proxy_protocol_server_port $r…

TCP三次握手与四次挥手

TCP三次握手与四次挥手 TCP三次握手与四次挥手解析 客户端连接服务器&#xff08;三次握手&#xff09;客户端关闭与服务器连接&#xff08;四次挥手&#xff09; 总结 TCP三次握手与四次挥手、流量控制(滑动窗口)、拥塞控制、半连接状态、2MSL TCP三次握手与四次挥手 TCP标…

fasterxml 注解组装实体

使用 FasterXML Jackson 的注解 JsonTypeInfo 和 JsonSubTypes 可以实现多态类型的处理。在你的 User 类上&#xff0c;你可以添加这些注解来指示 Jackson 如何处理多态类型。 以下是使用 JsonTypeInfo 和 JsonSubTypes 注解的 User 类的修改&#xff1a; import com.fasterx…

【C语言】【数据结构】【手搓二叉树】用数组实现一个二叉树

这里用数组&#xff08;顺序表&#xff09;实现一个二叉树 Heap.h #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<stdbool.h> typedef int HPDataType; typedef struct Heap {HPDataType* a;int size;int capacity; }HP; void …

LongAddr

目录 1. 引言 2. AtomicInteger的局限性 3. AtomicInteger与LongAdder 的性能差异 4.LongAdder 的结构 LongAddr架构 Striped64中重要的属性 Striped64中一些变量或者方法的定义 Cell类 5. 分散热点的原理 具体流程图 6. 在实际项目中的应用 7. 总结 1. 引言 在这一…

抖音外卖商品模型

目录 一、抖音外卖商品模型 二、商家运营流程 &#xff08;一&#xff09;商家入驻流程 &#xff08;二&#xff09;商品发布流程 三、推广带货流程 &#xff08;一&#xff09;短视频带货 &#xff08;二&#xff09;直播视频带货 【直播工具】 【直播流程】 直播前…

Redis--13--缓存一致性问题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 缓存一致性问题1、先更新缓存&#xff0c;再更新DB方案二&#xff1a;先更新DB&#xff0c;再更新缓存方案三&#xff1a;先删缓存&#xff0c;再写数据库推荐1&…

Ubuntu中安装IDEA,并配置桌面快捷方式

1、首先自己下载linux版本的idea 这一步省略不说了 2、在/usr/local/路径下新建安装目录IDEA&#xff1a; mkdir -p /usr/local/IDEA3、执行如下命令&#xff0c;解压下载的压缩包到指定目录&#xff1a; tar -zxvf ideaIU-2022.3.3.tar.gz -C /usr/local/IDEA 注意&#x…

[Golang] 高频次和高并发下的随机数重复问题的解决方案

一、概要&#xff1a; 在Golang中&#xff0c;获取随机数的方法一般会介绍有两种&#xff0c;一种是基于math/rand的伪随机&#xff0c;一种是基于crypto/rand的真随机。其中&#xff0c;math/rand由于其伪随机的原理&#xff0c;经常会出现重复的随机数&#xff0c;导致在需要…