当前位置: 首页 > news >正文

Java异常2

异常抛出的两种形式:

  1. 系统隐式抛出;int n=10/0;—隐式抛出一个异常;
  2. 手动抛出异常:throw new Exception();
import java.util.InputMismatchException;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Student1 st1=new Student1();st1.setId(10);st1.setName("小楼");System.out.println("输入性别");st1.setSex(sc.nextLine());st1.toString();}
}public Student1(String name, int id, double score) {this.name = name;this.id = id;this.sex = sex;}public int getId() {return id;}public String getName() {return name;}public String getScore() {return sex;}public void setId(int id) {this.id = id;}public void setName(String name) {this.name = name;}public void setSex(String sex) {// 方法一,隐式抛出异常// if (!"男".equals(sex)&&!"女".equals(sex)) {// this.sex="男";// } else {// this.sex=sex;// }// 方法二:手动抛出异常if (!"男".equals(sex) && !"女".equals(sex)) {try {// 这种运行异常,程序不要求必须处理throw new RuntimeException();// 手动抛出异常} catch (Exception e) {// TODO: handle exceptionSystem.out.println("输入的性别不合理");}} else {this.sex = sex;}}public String toString() {return "Student [name=" + name + "id=" + id + "score=" + sex + "]";}}

异常处理的两张方式
1、try……catch
2,throws

throws:方法声明异常,如果多个异常类型,用逗号分隔
public void setId(int id) throws InputMismatchException,ArithmeticException{}

import java.util.InputMismatchException;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Student1 st1 = new Student1();try {st1.setId(-1);// 此方法声明了异常,主方法进行处理} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}st1.setName("小楼");System.out.println("输入性别");st1.setSex(sc.nextLine());st1.toString();}
}class Student1 {private String name;private int id;private String sex;public Student1() {}public Student1(String name, int id, double score) {this.name = name;this.id = id;this.sex = sex;}public int getId() {return id;}public String getName() {return name;}public String getScore() {return sex;}public void setId(int id) throws Exception{//声明异常if (id>200||id<0) {throw new Exception();}else{}this.id = id;}public void setName(String name) {this.name = name;}public void setSex(String sex) {// 方法一,隐式抛出异常// if (!"男".equals(sex)&&!"女".equals(sex)) {// this.sex="男";// } else {// this.sex=sex;// }// 方法二:手动抛出异常if (!"男".equals(sex) && !"女".equals(sex)) {try {// 这种运行异常,程序不要求必须处理throw new RuntimeException();// 手动抛出异常} catch (Exception e) {// TODO: handle exceptionSystem.out.println("输入的性别不合理");}} else {this.sex = sex;}}public String toString() {return "Student [name=" + name + "id=" + id + "score=" + sex + "]";}}

异常的两种类型
1、RuntimeException;程序不要求必须处理
2、cheked异常,检查异常,程序运行之前必须做好处理措施,否者编译报错,Unhandled Exception type Exception

异常处理机制的好处
1、程序不会中断,处理异常之后可以继续执行
2、可以向用户提供友好的异常信息
3、将程序的正常流程与错误处理分开,有利于代码的编写与维护
/*
*方法的重写:子类声明的异常类型必须和父类一致,或是父类异常类型的子类。
*
*/

/*
*自定义异常:1.继承系统的异常类;
*public class SexException extends Exception {

   }2.添加构造方法;public SexException() {}public SexException(String message) {super(message);}

*/

*throw和throws:
*1)所在位置不一样:throw出现在方法体里;

  •         throws出现在方法声明处;
    

*2)后面跟的内容不一样:throw new Exception();异常对象;跟一个对象;

  •           throws Exception;异常类型;跟多个异常类型,用逗号分隔;
    

*3)功能不一样:throw:抛出异常;

  •      throws:当作异常处理方式,向上抛出异常。
    

1.运行时异常:
java.lang.ArrayIndexOutOfBoundsException;
java.lang.NullPointerException;
java.util.InputMismatchException;
java.lang.ArithmeticException;
java.lang.ClassCastException;

2.检查异常:
ClassNotFoundException
IOException

相关文章:

Java异常2

异常抛出的两种形式&#xff1a; 系统隐式抛出&#xff1b;int n10/0;—隐式抛出一个异常&#xff1b;手动抛出异常&#xff1a;throw new Exception(); import java.util.InputMismatchException; import java.util.Scanner;public class Main {public static void main(Str…...

2024熵密杯初始题2

问题简要&#xff1a; 已知 counter 0x7501E6EA token 0xF4CE927C79B616E8E8F7223828794EEDF9B16591AE572172572D51E135E0D21A 伪造出另一个可以通过验证的counter和token。 给出token生成及验证代码如下&#xff1a; import binascii from gmssl import sm3# 读取HMAC ke…...

echarts属性之title

title 标题组件&#xff0c;包含主标题和副标题。 在 ECharts 2.x 中单个 ECharts 实例最多只能拥有一个标题组件。但是在 ECharts 3 中可以存在任意多个标题组件&#xff0c;这在需要标题进行排版&#xff0c;或者单个实例中的多个图表都需要标题时会比较有用。 例如下面不…...

VUE errolog, vue 错误集

I) installation As to command “npm install” on cmd or powershell, we must execute it under the program folder...

驱动开发系列13 - Linux tasklet用法介绍

一:概述 Tasklet 是 Linux 内核中的一种轻量级任务调度机制,通常用于在中断上下文中执行短小的任务。它们在软中断处理过程中被调用,允许将较长的处理工作延后到一个较低优先级的上下文中,以减少中断处理的延迟。Tasklet 的使用可以帮助开发者更好地管理系统资源,提高性能…...

redis实现分布式锁,go实现完整code

Redis分布式锁 Redis 分布式锁是一种使用 Redis 数据库实现分布式锁的方式&#xff0c;可以保证在分布式环境中同一时间只有一个实例可以访问共享资源。 实现机制 以下是实现其加锁步骤&#xff1a; 获取锁 在 Redis 中&#xff0c;一个相同的key代表一把锁。是否拥有这把锁&…...

解析日期、编码

解析日期 这里指的是将字符串或者object类型的日期&#xff0c;转换成panda或python的日期类型。 主要的是dtype的变化&#xff1a;object / str —> datetime64[ns] # modules well use import pandas as pd import numpy as np import seaborn as sns import datetime# …...

【Qt】QApplication::restoreOverrideCursor():恢复鼠标光标到原始状态的用法解析

restoreOverrideCursor() 是 Qt 中 QApplication 类提供的一个静态函数&#xff0c;用来恢复鼠标光标到应用程序之前设置的状态。 在 Qt 中&#xff0c;你可以使用 QApplication::setOverrideCursor() 来临时更改鼠标光标的外观。例如&#xff0c;当执行一些耗时操作时&#x…...

重生之“我打数据结构,真的假的?”--2.单链表(无习题)

C语言中的单链表总结 单链表是一种基础的数据结构&#xff0c;广泛应用于C语言编程中。它由节点组成&#xff0c;每个节点包含数据和指向下一个节点的指针。单链表的优点在于动态内存分配和高效的插入与删除操作。本文将详细探讨单链表的定义、基本操作、应用场景以及相关示例…...

【有啥问啥】视频插帧算法技术原理详解

视频插帧算法技术原理详解 引言 视频插帧&#xff08;Video Interpolation&#xff09;技术&#xff0c;作为计算机视觉领域的一项重要应用&#xff0c;旨在通过算法手段在已有的视频帧之间插入额外的帧&#xff0c;从而提升视频的帧率&#xff0c;使其看起来更加流畅。这一技…...

Leetcode148,109以及二者的合并 -> Tencent面试算法题 - 无序双向链表转BST

根源简述 这道题是腾讯在2024/8/30考的一道面试题&#xff0c;整体来说&#xff0c;难度不大&#xff0c;就是代码量稍稍有点儿大&#xff0c;让我们一起来看一下吧 题目描述 整数无序双向链表能否转BST&#xff08;二叉搜索树&#xff09;&#xff0c;如果能&#xff0c;怎么转…...

【蓝桥杯选拔赛真题77】python计算小球 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析

目录 python计算小球 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python计算小球 第十五届蓝桥杯青少年组python比赛选拔赛真题 一、题目要…...

获取Hive表备注

DESCRIBE EXTENDED 表名;先获取Detailed Table Information这行的data_type字段数据&#xff0c;进行正则匹配&#xff0c;拿到表备注&#xff0c;如下&#xff1a; String str ReUtil.get("parameters:\\{(?!.*?\\().*transient_lastDdlTime.*?comment(.*?)\\}&quo…...

10.30学习

一、科学计数法 C语言中的科学计数法主要用于表示非常大或非常小的浮点数&#xff0c;它遵循以下格式&#xff1a; 1. E或e表示指数&#xff1a; 科学计数法中的E或e用来表示“指数”&#xff08;Exponent&#xff09;。例如&#xff0c; 1.23e4 或 1.23E4 表示 1.23 * 10^4…...

什么是栈溢出

一、什么是栈溢出 栈溢出&#xff08;Stack Overflow&#xff09;就是指在程序运行过程中&#xff0c;往栈里存放的数据超过了栈所能容纳的最大容量&#xff0c;从而导致程序出现异常行为的情况。这就好比一个箱子本来只能装一定数量的物品&#xff0c;硬要往里面塞更多的东西&…...

在linux中arm-linux-gcc和/usr/bin/gcc有啥区别

在Linux中&#xff0c;arm-linux-gcc和/usr/bin/gcc都是编译器&#xff0c;但它们之间存在显著的区别&#xff0c;主要体现在编译目标、使用场景以及编译生成的二进制文件的可执行性上。而软链接则是Linux文件系统中的一种特殊文件类型&#xff0c;用于创建一个文件的别名。 a…...

常用环境部署(二十二)——MySQL的数据库迁移到另一个机器上

1、导出原数据库的数据 mysqldump -u [用户名] -p[密码] [数据库名] > database_dump.sql 命令示例&#xff1a; mysqldump -u root -p123456 wd > /opt/wd.sql 2、在新机器上创建数据库 mysql -u [用户名] -p -e "CREATE DATABASE [新数据库名]" 命令示…...

两台主机只能单方向ping通

可能性比较大的原因时ping不通的那台主机安装了个人防火墙。 在共享上网的机器中&#xff0c;出于安全考虑&#xff0c;大部分主机都安装个人防火墙软件。几乎所有个人防火墙软件默认不允许其他机器ping本机。一般的做法是将来自外部的ICMP请求报文滤掉&#xff0c;对本机出去的…...

redis windows 5.0 下载

Redis 简介 Redis 是一个高性能的 key-value 数据库&#xff0c;广泛应用于缓存、消息队列、实时分析等场景。它支持多种数据结构&#xff0c;如字符串、哈希、列表、集合、有序集合等&#xff0c;并且提供了丰富的操作命令&#xff0c;能够满足各种复杂的数据处理需求。 下载…...

视频转gif怎么转换?6种视频格式转换简单方法分享,附操作截图!

gif动图凭借其简洁而生动的特点&#xff0c;已成为互联网交流中不可或缺的一部分。尽管gif和视频在技术上有所不同&#xff0c;但两者都能以短小的帧展现动作&#xff0c;而gif通常不带声音&#xff0c;具备循环播放的特性。因此&#xff0c;出于创建gif动图、存储更多媒体文件…...

StructRAG简介

StructRAG是一种新型的框架&#xff0c;旨在提升大型语言模型&#xff08;LLMs&#xff09;在知识密集型推理任务中的性能。它通过推理时的混合信息结构化机制&#xff0c;根据任务需求以最合适的格式构建和利用结构化知识。 以下是StructRAG的核心组成部分和工作流程&#xff…...

java脚手架系列12-mongoDB

之所以想写这一系列&#xff0c;是因为之前工作过程中有几次项目是从零开始搭建的&#xff0c;而且项目涉及的内容还不少。在这过程中&#xff0c;遇到了很多棘手的非业务问题&#xff0c;在不断实践过程中慢慢积累出一些基本的实践经验&#xff0c;认为这些与业务无关的基本的…...

python四舍五入保留两位小数

在 Python 中&#xff0c;你可以使用内置的 round() 函数来对数字进行四舍五入并保留两位小数。round() 函数有两个参数&#xff1a;要四舍五入的数字和要保留的小数位数。以下是一个简单的示例&#xff1a; # 示例数字 number 3.14159# 四舍五入保留两位小数 rounded_number…...

期权懂|有什么期权交易策略能够稳赚不赔的?

期权小懂小编每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 有什么期权交易策略能够稳赚不赔的? 期权交易具有风险性&#xff0c;没有任何一种策略能够保证稳赚不赔。 以下是一些常见的期权交易策略&#xff0c;虽不能保证盈利&#…...

笔记本脱机状态

先是显示脱机&#xff0c;请尝试其他方法登录 1.按照联想客服&#xff0c;进入高级选项里面&#xff0c;清除两个更新项目&#xff0c;没有卸载成功 2.安装wepe&#xff0c;先是能检测到U盘&#xff0c;但是进不去&#xff0c;然后我淘宝淘帮我做盘&#xff0c;我自己重新装了一…...

Node.js:模块 包

Node.js&#xff1a;模块 & 包 模块module对象 包npm安装包配置文件镜像源 分类 模块 模块化是指解决一个复杂问题时&#xff0c;自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说&#xff0c;模块是可组合、分解和更换的单元。 简单来说&#xff0c;就是把一个…...

油动无人机动力测试台-60公斤级-Flight Stand 60 ICE

产品简介 通过Flight Stand 60 ICE测试台对内燃机和螺旋桨的拉力&#xff0c;扭矩&#xff0c;转速&#xff0c;燃油流量&#xff0c;温度&#xff0c;功率和螺旋桨效率的测量&#xff0c;帮助用户精准地描述和评估其性能参数&#xff0c;以不断地优化和提升燃油动力系统性能。…...

给grasshopper中的python脚本电池加个标签

ghenv.Component.Message test使用python脚本创建的电池&#xff0c;也可以保存起来。 File – Create User Object...

别被忽悠了 Lua 数组真的也可以从 0 开始索引?

先前我说 Lua 数组从 1 开始不太爽&#xff0c;很多人来纠正我说也可以从 0 开始&#xff0c;比如&#xff1a; local m { [0] 100, 101, 102, 103 }然后访问时 m[0] 也可以正常访问到第 0 个元素&#xff0c;所以 “Lua 给你充分自由度&#xff0c;让你可以从任意下标索引数…...

docker占用磁盘过多问题

我在windows系统上用docker&#xff0c;安装在C盘环境下&#xff0c;我发现C盘占用了大量的空间&#xff0c;查找后发现是docker的映像文件占用的&#xff0c;于是开始清理&#xff0c;中间还踩个坑&#xff0c;记录一下&#xff0c;下次需要的时候方便找。 踩坑 我本想移动映…...

合肥企业网站建设工作室/网络推广的基本渠道

本次实验主要是实现站点间的复制实验&#xff0c;实验图如下&#xff1a; 1&#xff09;构建好上图的域结构以后&#xff0c;打开192.168.10.2服务器的AD站点和服务&#xff0c;可以看到站点间的默认关系。 2&#xff09;右击Sites---》新建---》站点。分别输入XM和FZ做为站点的…...

wordpress4.9上传失败/产品软文撰写

前言 ResNet&#xff08;Residual Neural Network&#xff09;由微软研究院的Kaiming He、Xiangyu Zhang、Shaoqing Ren、Jian Sun四名华人提出&#xff0c;并在ILSVRC2015比赛中取得冠军&#xff0c;在top5上的错误率为3.57%&#xff0c;对应的论文《Deep Residual Learning …...

旅游网站建设规划书/深圳外贸网络推广渠道

推荐阅读&#xff1a; 1.Cas9稳转细胞株&#xff0c;令CRISPR/Cas9基因编辑更高效 2.【2020年】CRISPR基因编辑技术最新进展盘点解读 1月18日&#xff0c;博雅辑因宣布中国国家药品监督管理局药品审评中心已经批准其针对输血依赖型β地中海贫血的CRISPR/Cas9基因编辑疗法产品E…...

做网站需要懂代码么/seo搜索铺文章

| 缓冲区 在不同速度的设备之间传递数据需要使用缓冲区。 scanf函数工作时需要使用一个叫做输入缓冲区的缓冲区。 用户在键盘上输入的内容首先进入缓冲区&#xff0c;程序从输入缓冲区里获得数字。先进入缓冲区里的数字必须首先处理。 如果用户输入的格式和程序要求的不一致&…...

网站建设与管理需要什么软件有哪些/免费推广引流平台

有一种坑叫做发财黄金坑&#xff0c;这个坑是用来过的&#xff0c;不是用来跳的&#xff0c;当你过来了就会发财。 黄金坑在投资领域中出现的情形&#xff1a; 1.前期价格急速下跌或者长期下跌&#xff0c;之后股价横盘整理&#xff0c;没有再出现强烈的下跌趋势。此时说明股价…...

iapp做网站/seo关键词排名优化联系方式

题目部分 原题链接 题目描述 传说很久以前&#xff0c;大地上居住着一种神秘的生物&#xff1a;地精。 地精喜欢住在连绵不绝的山脉中。具体地说&#xff0c;一座长度为N的山脉H可分为从左到右的N段&#xff0c;每段有一个独一无二的高度\(H\_i\)&#xff0c;其中\(H\_i\)是\(1…...