Java的异常指什么

Java异常

什么是异常?

程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止

异常并不是语法错误,语法错误的话编译不会通过,不会产生字节码文件,根本运行不起来

异常的抛出机制:

Java中把不同的异常用不同的类表示,发生某种异常就创建该异常类型的对象,并且抛出。

常见异常:
		int[] a=new int[5];a[5]=10;//ArrayIndexOutOfBoundsException    数组索引超出范围String s="abc";s.charAt(6);//StringIndexOutOfBoundsException     字符串索引超出范围int a=1,b=0,c=a/b;//ArtithmeticException    算数异常String s=null;s.charAt(1);//NullPointerException  空指针异常Object s="abc";Integer i=(Integer)s;//ClassCastException    类型转换异常int a=Integer.parseInt("abc");//NumberFormatException      数字格式化异常
/*
Exception in thread“main"java.lang.0ut0fMemoryError: Java heap space 内存不够用了,程序无法处理
*/
ArrayList a=new ArrayList();while(true){a.add(new Date());}public static int sum(int n){if(n==1){return 1;}else{return sum(n-1);}}
sum(100000);//StacjOverflowError栈不够用

java异常体系结构

Throwable:Error和Exception

对应:java.lang.Error java.lang.Exception

java.lang.Throwable: 是java异常体系中的根类里面有两个常用的方法:
public void printstackTrace(): //打印栈中的异常信息public String getMessage() : //获取到异常信息
Error:java虚拟机无法解决的严重问题。如:JVM系统内部错误,资源耗尽等问题。一般不会编写针对性代码处理

如:StackOverflowError(栈内存溢出)和OutOfMemoryError(堆内存溢出)简称OOM

Exception:其他因变成错误或偶然的外在因素导致的一般问题,需要写针对性代码使程序能正常运行,否则一旦发生异常,程序也会挂掉

处理异常:

把可能出现异常的代码放入try,用catch来捕获显示异常信息,finally一定会在最后执行,try和catch中有return则先finally再return

try{写代码,可能会出现异常
}catch(异常类型 a){捕获指定类型的异常
}finally{最终必须要执行的代码(无论是否出现异常)
}
		try{int[] arr=new int[5];arr[5]=10;String s="abc";s.charAt(6);int a=1,b=0,c=a/b;}catch (ArithmeticException a){ //捕获出现的指定的异常对象,如果类型不匹配,就捕获不到a.printStackTrace();System.out.println("除数不能为0!");}catch (NullPointerException n){n.printStackTrace();System.out.println("对象为null");}catch (Exception e){e.printStackTrace();System.out.println("程序异常:"+e.getMessage());}finally {System.out.println("关闭流通道");}
		FileInputStream inputStream=null;try{inputStream=new FileInputStream("D:/ccc.txt");inputStream.read();}catch (FileNotFoundException e){e.printStackTrace();System.out.println("文件找不到");}catch (IOException io){io.printStackTrace();System.out.println("读文件异常");}finally {//在finally代码块中必须关闭流通道if(inputStream!=null){inputStream.close();}}
throws和throw:

定义一个方法的时候可以用throws声明,表示此方法不处理异常,而交给方法调用处进行处理

public void test throws 异常1,异常2,异常3{
}

任何方法都可以使用throws声明异常类型,包括抽象方法

运行期异常和编译期异常:
public static int chu(int x,int y)throws ArithmeticException{int z=x/y;return z;}public static void test()throws UnsupportedEncodingException {"abc".getBytes("utf-8");}public static void main(String[] args) {chu(10,0);//由于chu的方法是运行期异常,所以编译期间不会要求强制处理test();//由于test方法中抛出的是一个编译期异常,所以在编写代码期间,就强制要求进行处理//处理方法:1.try catch捕获    2.继续throws 一般到了顶层的方法就不能再throwstry{test();}catch (UnsupportedEncodingException e){e.printStackTrace();}}/*在方法声明的地方,通过throws关键字 声明此方法可能会出现异常使用throws抛出异常对象,表示此方法不处理异常,交给调用这个方法的地方进行处理,一般在底层的方法中,都不进行处理*/

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

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

相关文章

docker离线安装和使用

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://ullx9uta.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo syste…

常见场景面试题(二)

typora-copy-images-to: imgs theme: cyanosis 敏感词库的设计&#xff0c;要求增删改查敏感词。敏感词文本匹配&#xff0c;敏感词一万个&#xff0c;文本长度在 20 - 1000 答&#xff1a;使用 trie 树来实现敏感词库的设计&#xff0c;可以利用字符串公共前缀来节约存储空间。…

使用 Elasticsearch 作为向量数据库:深入研究 dense_vector 和 script_score

Elasticsearch 是一个非常强大且灵活的搜索和分析引擎。 虽然其主要用例围绕全文搜索&#xff0c;但它的用途广泛&#xff0c;足以用于各种其他功能。 其中一项引起许多开发人员和数据科学家关注的功能是使用 Elasticsearch 作为向量数据库。 随着 dense_vector 数据类型的出现…

Linux多线程编程- 无名信号量

简介 无名信号量&#xff08;在 POSIX 环境下通常指 sem_t 类型的信号量&#xff09;是用于同步和互斥的原语&#xff0c;它允许线程和进程按照预期的顺序执行&#xff0c;并确保对共享资源的安全访问。无名信号量与命名信号量的主要区别在于它们的可见性和生命周期。无名信号…

基本分段存储管理方式(分段,段表,地址转换以及与分页管理对比)

1.分段 1.进程的地址空间: 按照程序自身的逻辑关系划分为若干个段&#xff0c;每个段都有一个段名 &#xff08;在低级语言中&#xff0c;程序员使用段名来编程&#xff09;&#xff0c;每段从0开始编址. 2.内存分配规则: 以段为单位进行分配&#xff0c;每个段在内存中占据…

学习笔记---超基础+详细+新手的顺序表~~

目录 1.顺序表的前言 1.1 顺序表--->通讯录&#x1f4c7; 1.2 数据结构的相关概念&#x1f3c7; 1.2.1 什么是数据结构 1.2.1 为什么需要数据结构 2. 顺序表概念及分类 2.1 顺序表的概念&#x1f419; 2.2 顺序表的分类&#x1f42b; 2.2.1 顺序表和数组的区别 2.…

金x软件有限公司安全测试岗位面试

目录 一、自我介绍 二、你是网络空间安全专业的&#xff0c;那你介绍下网络空间安全这块主要学习的东西&#xff1f; 三、本科专业是网络工程&#xff0c;在嘉兴海视嘉安智城科技有限公司实习过&#xff0c;你能说下干的工作吗&#xff1f;&#xff08;没想到问的是本科实习…

第一个Spring程序

目录 一、怎么创建Spring项目 1.1 使用maven创建Spring项目 1.2 导入Spring相关依赖 二、Spring的配置文件 三、使用Spring配置文件创建类对象 3.1 Spring核心api 3.2 Spring程序开发 一、怎么创建Spring项目 1.1 使用maven创建Spring项目 在创建新项目的时候使用maven去创建…

DDoS检测防御实现方案

流量采集模式 通过分光器将流量直接镜像到攻击检测器&#xff0c;收包采用DPDK库。 当前整机流量、源IP信息、连接数 、连接内容(五元组等)的信息汇聚 当发生告警时采样原始数据包&#xff0c; 采用固定采样算法 基于检测对象的TCP syn ack psh ack established的个数、流量…

系统架构师备考倒计时19天(每日知识点)

软件架构评估&#xff08;ATAM&#xff09; 在SAAM的基础上发展起来的&#xff0c;主要针对性能、实用性、安全性和可修改性&#xff0c;在系统开发之前&#xff0c;对这些质量属性进行评价和折中。ATAM方法的主要活动领域包括&#xff1a; 第一阶段 场景和需求收集 收集场景…

NLP算法面经 | 腾讯 VS 美团

作者 | 曾同学 编辑 | NewBeeNLP 面试锦囊之面经分享系列&#xff0c;持续更新中 后台回复『面试』加入讨论组交流噢 lz从3月初脚因打球扭伤了开始&#xff0c;投递简历&#xff0c;接二连三的面试鞭尸又面试&#xff0c;昨天才终于上岸了&#xff0c;分享经验~ 腾讯PCG看点&…

动态规划-买卖股票系列

121.买卖股票的最佳时机 Python: class Solution(object):def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""if len(prices)0:return 0dplen(prices)*[0]minpriceint(prices[0])for i in range (1,len(prices)):minprice…

element plus 的图片上传组件回显

element图片回显是通过修改file-list属性的url属性实现的。 <!-- 图片上传 --><el-form-item label"景区图片" prop"s_img"><el-uploadlist-type"picture-card":action"网址":on-change"handleChange":befor…

【Python-Django】基于TF-IDF算法的医疗推荐系统复现过程

复现步骤 step1&#xff1a; 修改原templates路径&#xff0c;删除&#xff0c;将setting.py中的路径置空 step2&#xff1a; 注册app python manage.py startapp [app名称]在app目录下创建static和templates目录 step3&#xff1a; 将项目中的资源文化进行拷贝 step4&#…

新能源电池试验中准确模拟高空环境大气压力的解决方案

摘要&#xff1a;针对目前新能源电池热失控和特性研究以及生产中缺乏变环境压力准确模拟装置、错误控制方法造成环境压力控制极不稳定以及氢燃料电池中氢气所带来的易燃易爆问题&#xff0c;本文提出了相应的解决方案。方案的关键一是采用了低漏率电控针阀作为下游控制调节阀实…

《省级国土空间规划编制技术规程》国家标准(GB/T 43214-2023)原文下载

《省级国土空间规划编制技术规程》国家标准&#xff08;GB/T 43214-2023&#xff0c;以下简称《规程》&#xff09;&#xff0c;将于2024年1月1日起实施&#xff0c;该《规程》由市场监管总局&#xff08;国家标准委&#xff09;9月7日批准发布。 《规程》由自然资源部组织编制…

Steam将强制执行短信验证以遏制肆虐的恶意更新

为应对最近爆发的恶意更新&#xff0c;著名游戏平台Steam出品方Valve近日发布公告称&#xff0c;将为Steam 上发布游戏的开发者实施额外的安全措施&#xff0c;包括基于短信的确认码。 游戏及软件开发商在 Steam 平台上分发其产品需要用到Steamworks&#xff0c;它支持DRM&…

GEO生信数据挖掘(九)WGCNA分析

第六节&#xff0c;我们使用结核病基因数据&#xff0c;做了一个数据预处理的实操案例。例子中结核类型&#xff0c;包括结核&#xff0c;潜隐进展&#xff0c;对照和潜隐&#xff0c;四个类别。第七节延续上个数据&#xff0c;进行了差异分析。 第八节对差异基因进行富集分析。…

LeetCode 260. 只出现一次的数字 III:异或

【LetMeFly】260.只出现一次的数字 III 力扣题目链接&#xff1a;https://leetcode.cn/problems/single-number-iii/ 给你一个整数数组 nums&#xff0c;其中恰好有两个元素只出现一次&#xff0c;其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返…

数据分析案例-基于snownlp模型的MatePad11产品用户评论情感分析(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…