java —— 异常处理

一、认识异常

java 中的异常大致分为三类:编译错误、逻辑错误、运行异常。其中编译错误和逻辑错误通常手动更改即可,运行异常是异常处理的主要内容。

java 中的异常全部继承自 Exception 类,其常见的子类如下:

查看异常,例如:

二、异常处理

异常处理分为捕获异常和抛出异常,捕获异常是自己解决,抛出异常是交给调用者解决。

(一)捕获异常

捕获异常通过 try{……} catch() {……} finally{……} 模式解决,try 里面填写可能出现异常的代码;catch 括号里声明异常类型,代码块里写处理方式;finally 里面填写不论是否出现异常都要执行的代码(可选)。

例如: 

public static void main(String[] args) 
{
	int[] intarr= {0,0,1};	
    try
	{
		System.out.println(intarr[3]);		//显然下标已经越界	
	}
	catch(Exception e)                      //声明异常对象 e
	{
		e.printStackTrace();                //调用.printStackTrace()方法,打印异常内容
	}
	finally
	{
		System.out.println("代码执行完毕");
	}
}

 (二)抛出异常

抛出异常通过 throws 关键字实现,在方法参数括号后加 throws 异常类型 即可,这种方法并没有将异常解决,其他人在调用方法时需要对异常再次处理。

public static void main(String[] args) throws Exception
{
	方法体;
}

三、自定义异常

自定义异常通过关键字 throw 实现,首先声明一个异常:

Exception e=new Exception("异常信息提示");

而后在需要抛出异常的位置,throw e 即可。

public static void main(String[] args) throws Exception 
{
	Exception e=new Exception("长度不对");     //自定义异常
	Scanner input=new Scanner(System.in);
	String x=input.next();
	if(x.length()!=3)
	{			
		throw e;                             //抛出异常
	}		
}

 如果输入的字符串长度不等于 3,就抛出异常,异常信息为:长度不对。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vscode常用操作

1 vscode跳转node_modules下文件,没有切换定位到左侧菜单目录的问题 2,搜索node-modules 3,设置选中字体颜色 {"workbench.colorTheme": "Default Light Modern","editor.mouseWheelZoom": true,"termin…

clocking wizard IP核通过AXI4-Lite接口实现动态重新配置应用实例

在最近的FPGA应用中,应用到了基于Zynq 7000的Uart串口设计,为了让串口的时钟更精确,采用了外部时钟模式,如下图所示。外部时钟连接到了Clocking Wizard IP核的输出端。 在串口通信时,发现串口有错码出现。例如&#xf…

Secure Operation

文章目录 Secure Summation OperationSecure Set Union Operation Secure Summation Operation 让我们通过一个具体的例子来说明这个算法。 假设有三个数据拥有者 S1, S2 和 S3,他们分别持有以下值: S1 持有 value1 10S2 持有 value2 20S3 持有 val…

React 微信扫码登陆网页

微信扫码登陆网页 第一步:微信开放平台申请应用第二步:前端生成二维码第三步:微信扫码授权 微信官方开发说明文档 第一步:微信开放平台申请应用 微信开放平台注册开发者账号,并拥有一个已审核通过的网站应用&#xff…

用了那么久的可道云teamOS,居然才发现这个隐藏的功能:一键存图,无需下载

在日常的工作或学习中,我们在遇到喜欢的图片时,总会想要保存下来以备后用。 然而,传统的图片保存方式通常需要我们右键另存为,或者复制链接、打开下载工具,甚至可能需要跳转到其他应用或网页才能完成下载。 存在电脑本…

jmeter之MD5加密接口请求教程

前言: 有时候在项目中,需要使用MD5加密的方法才可以登录,或者在某一个接口中遇到 登录获取token后才可以进行关联,下面介绍下遇到的常见使用 一、第一种方法:使用jmeter自带的函数助手digest 选择工具,选…

IC开发——verdi基本用法

1. 基础知识 1.1. verdi VCS和Verdi这两个工具,这两个工具目前都属于synopsys公司。VCS主要负责编译运行Testbench和RTL,并负责生成相应的波形文件。而verdi主要负责加载波形文件,查看信号的波形及其对应的代码来进行调试验证。Verdi最开始…

Spring Boot集成六大常用中间件,附集成源码,亲测有效

目录 万字论文,从0到1,只需1小时获取途径1、Spring Boot如何集成Spring Data JPA?2、Spring Boot如何集成Spring Security?3、Spring Boot如何集成Redis?4、Spring Boot如何集成RabbitMQ?5、Spring Boot如何…

PGP软件安装文件加密解密签名实践记录

文章目录 环境说明PGP软件安装PGP软件汉化AB电脑新建密钥并互换密钥对称密钥并互换密钥 文件加密和解密A电脑加密B电脑解密 文件签名A电脑签名文件B电脑校验文件修改文件内容校验失败修改文件名称正常校验 环境说明 使用VM虚拟两个win11,进行操作演示 PGP软件安装 PGP软件下…

ML307R OpenCPU 网络初始化流程介绍

一、网络初始化流程 二、函数介绍 三、示例代码 四、代码下载地址 一、网络初始化流程 模组的IMEI/SN获取接口可在include\cmiot\cm_sys.h中查看,SIM卡IMSI/ICCID获取接口可以在include\cmiot\cm_sim.h中查看,PDP激活状态查询可以在include\cmiot\cm_modem.h中查看 二、函…

Java面试八股之多线程编程中什么是上下文切换

多线程编程中什么是上下文切换 上下文切换(Context Switch)是操作系统为了实现多线程或进程并发执行而采取的一种机制。在Java多线程环境中,上下文切换具体指的是CPU控制权从一个正在运行的线程转移到另一个就绪并等待CPU执行权的线程的过程…

Python轴承故障诊断 (21)基于VMD-CNN-BiTCN的创新诊断模型

往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 Python轴承故障诊断入门教学-CSDN博客 Python轴承故障诊断 (13)基于故障信号特征提取的超强机器学习识别模型-CSDN博客 Python轴承故障诊断 (14)高创新故障识别模型-CSDN…

职业探索--运维体系-SRE岗位/CRE岗位/运维岗位-服务心态-运维职业发展方向-运维对象和运维场景

参考来源: 极客时间专栏:赵成的运维体系管理课 极客时间专栏:全栈工程师修炼指南 赵成大佬在鹏讯云社区的文章(77篇) 有了CMDB,为什么还要应用配置管理 故障没有根因,别再找了 如何理解CMDB的套…

构建镜像时候出现奇怪的现象时候

一、背景 构建镜像时候,昨天还好好的,今天出现奇怪的现象 二、查看现象 docker system df#cache 显示600G 三、步骤 这操作比较轻微,20以前的缓存清理掉 docker builder prune --filter until480h # 清除20填以前的构建缓

【智能家居入门1】环境信息监测(STM32、ONENET云平台、微信小程序、HTTP协议)

作为入门本篇只实现微信小程序接收下位机上传的数据,之后会持续发布如下项目:①可以实现微信小程序控制下位机动作,真正意义上的智能家居;②将网络通讯协议换成MQTT协议再实现上述功能,此时的服务器也不再是ONENET&…

对于高速信号完整性,一块聊聊啊(16)

本文将进行串行链路前仿真(包括有源和无源) 1)在ADS中搭建好S参数无源链路原理图,并设置好各项参数,尤其是S仿真器频率、起始频率和步长,如下图所示。 2)查阅所需仿真的信号标准规范文件&#…

使用Python操作Jenkins

大家好,Python作为一种简洁、灵活且功能丰富的编程语言,可以与各种API轻松集成,Jenkins的API也不例外。借助于Python中的python-jenkins模块,我们可以轻松地编写脚本来连接到Jenkins服务器,并执行各种操作,…

服务器数据恢复—EVA存储异常断电重启后虚拟机无法启动如何恢复数据?

服务器存储数据恢复环境: 某品牌EVA8400,服务器上安装VMware ESXi虚拟化平台,虚拟机的虚拟磁盘包括数据盘(精简模式)快照数据盘,部分虚拟机中运行oracle数据库和mysql数据库。 服务器存储故障&检测&…

Python bqplot:轻松打造炫酷交互式数据可视化

更多Python学习内容:ipengtao.com bqplot是一个用于Jupyter Notebook的交互式数据可视化库,由Jupyter团队开发。它基于HTML5 Canvas和d3.js,并使用ipywidgets进行交互,允许用户通过Python代码创建复杂的交互式图表。bqplot的设计目…

【前端】XML和HTML的区别详解

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…