异常体系----java

一、异常体系

1、error

error类层次描述了java运行时系统内部错误和资源耗尽错误,一般指与jvm或动态加载等相关的问题,

如:虚拟机错误,动态链接失败,系统崩溃等。

2、exception

所有异常类的父类,其子类对应了各种各样的可能出现的异常事件。

3、exception分类

(1)运行时异常 runtime exception

可不必对其处理,系统自动检测处理

一类特殊的异常,如被0除,数组下标超范围等,其产生比较频繁,处理麻烦,如果需要显示的声明或

捕获将会对程序可读性和运行效率影响很大

(2)检查异常 checked exception

必须捕获进行处理,否则会出现编译错误

注意:只有Java提供了checked异常,体现了java的严谨性,提高了java的健壮性。同时也是一个备受争议的问题

二、异常处理

1、手动抛出异常throw

(1)java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要手工创建并抛出

(2)在捕获一个异常前,必须有一段代码先生成异常对象并把它抛出,这个过程我们可以手工做,也可以有JRE来实现

但是他们都是throw子句。

(3)注意抛出运行时异常和checked异常的区别

抛出checked异常,该throw语句要么处于try块中,要么方法签名中石油throws抛出,

抛出运行时异常,没有以上要求

2、声明异常throws

1、当checked exception产生时,不一定l立刻处理它,可以再把异常throws出去

2、如果一个方法抛出多个已检查异常,就必须在方法的首部列出所有的异常,之间以逗号隔开

3、子类声明的异常不能超过父类声明的范围:父类没有声明异常,子类也不能;不可抛出原有方法抛出

异常类的父类或上层类

 

import java.util.InputMismatchException;
import java.util.Scanner;public class TestException6 {public static void main(String[] args) throws Exception{try{getAvg();}catch (Exception e){e.printStackTrace();}getAvg();}public static void getAvg() throws Exception{try {Scanner input = new Scanner(System.in);//输入总分System.out.println("请输入总分");int sum = input.nextInt();//输入人数System.out.println("请输入人数");int count = input.nextInt();if (count<0){throw new Exception("人数不能是负数:"+count);}//求平均分输出int result = sum/count;System.out.println("result="+result);}catch (ArithmeticException e){e.printStackTrace();}catch (InputMismatchException e){e.printStackTrace();}catch (Exception e){//先处理e.printStackTrace();//再抛出throw e;}finally {System.out.println("11111");}System.out.println("22222222");}
}

运行结果如下:

 

 

 

 

 

 

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

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

相关文章

xy坐标正负方向_【笛卡尔坐标系】

【壹】笛卡尔坐标系(Cartesian coordinates)就是直角坐标系和斜坐标系的统称。相交于原点的两条数轴&#xff0c;构成了平面放射坐标系。如两条数轴上的度量单位相等&#xff0c;则称此放射坐标系为笛卡尔坐标系。两条数轴互相垂直的笛卡尔坐标系&#xff0c;称为笛卡尔直角坐标…

throw和throws的使用

throw和throws的使用 public class Person {private String name;private int age;public Person(){}Person(String name,int age){this.name name;this.age age;}public int getAge() {return age;}public String getName() {return name;}public void setName(String name…

为什么需要包装类?

1、某些方法的参数必须是对象&#xff0c;为了让基本数据类型的数据能作为参数&#xff0c;提供包装类。 2、包装类还可以提供更多的功能 3、其他特别重要的功能&#xff1a;比如可以实现字符串和基本数据类型之间的转换 认识一下包装类吧&#xff01; package demo05;impor…

一句话概括自动装箱/拆箱

自动装箱过程是通过调用包装类的valueOf&#xff08;&#xff09;方法实现的&#xff0c;二自动拆箱过程是通过调用包装类的xxxValue&#xff08;&#xff09;方法实现的&#xff08;xxx代表对应的基本数据类型&#xff0c;如intValue&#xff0c;doubleValue等&#xff09;。 …

2021-05-24

String类的使用 package demo07;import java.util.Locale; import java.util.function.BiConsumer;public class TestString {public static void main(String[] args) {//1.创建一个String对象String str "abcDEfghijkL";//2.操作该String对象//2.1最简单的方法Sy…

StringBuffer和StringBuild

StringBuffer和StringBuild两个类的区别主要是&#xff1a; StringBuffer JDK1.0提供的类&#xff0c;线程安全&#xff0c;做线程同步检查&#xff0c;效率较低。 StringBuild JDK1.5提供的类&#xff0c;线程不安全&#xff0c;不做线程同步检查&#xff0c;因此效率较高。…

Date类练习

package demo09;import java.util.Date;public class TestDate {public static void main(String[] args) {//获取当前时间Date now new Date();//输出当前时间System.out.println(now.toString());System.out.println(now.toLocaleString());System.out.println(now.getYear(…

全连接层的作用_python构建计算图2——全连接层

&#xff08;好久不更~&#xff09;前文中&#xff0c;参照tensorflow的方式实现了简单的自动求导。接下来要在自动求导的基底&#xff08;模板&#xff09;上搭建简单的bp神经网络。计算图前文曾多次提到计算图&#xff0c;关于什么是计算图&#xff0c;有很多种说法。既然它被…

DateFormat类

DateFormat是一个抽象类&#xff0c;一般使用它的子类SimpleDateFormat类来实现。主要作用就是把时间队形转化成指定格式的字符串 反之&#xff0c;把指定格式的字符串转化成时间对象。 package demo10;import java.text.DateFormat; import java.text.ParseException; impor…

免费CDN:jsDeliver+Github使用方法

免费CDN&#xff1a;jsDeliverGithub使用方法 CDN的全称是Content Delivery Network&#xff0c;即内容分发网络。CDN是构建在网络之上的内容分发网络&#xff0c;依靠部署在各地的边缘服务器&#xff0c;通过中心平台的负载均衡、内容分发、调度等功能模块&#xff0c;使用户…

教你如何使用github+jsDelivr搭建免费图床

前言 之前写了一篇文章&#xff0c;教你如何使用TyporaPicGo实现图片自动上传到图床 。 这里我用的是七牛图床&#xff0c;七牛图床有一定的免费使用量&#xff08;没记错的话应该是10个G&#xff09;&#xff0c;如果你的存储量超过这个大小就需要付费使用了。除此之外&…

hexo-Fluid主题使用手册

hexo-Fluid主题使用手册 [官网] https://fluid-dev.github.io/hexo-fluid-docs/ 前言 Fluid 是一款很十分优雅的主题&#xff0c;那么写一篇优雅的文章搭配它呢&#xff1f;以下会从几个方面来简述&#xff0c;主要还是做几个推荐。 文章内容 熟悉 Markdown 语法 对于使…

Hexo-fluid主题设置统计博客阅读量

Hexo-fluid主题设置统计博客阅读量 开始小插曲&#xff1a; 我使用的是sublime文本编辑器&#xff1a; [官网] https://www.sublimetext.com/ 正戏开始 查找关键字&#xff1a;web_analytics (快捷键ctrlF) 这里我使用一个第三方服务Leancloud来统计文章的阅读量。 首先…

使用Hexo写博客

尽管 Hexo 支持 MarkDown&#xff0c;但是我们却不能像写单独的 MarkDown 文档时那样肆无忌惮。由于我们所写的文档是需要被解析为静态网页文件的&#xff0c;所以我们必须严格遵从 Hexo 的规范&#xff0c;这样才能解析出条理清晰的静态网页文件。新建文档 假设我们的文章名为…

mysql过滤效率和java过滤效率_如何合理选择初中高效过滤器的效率?

利菲尔特环保科技点击蓝字 关注我们 各种型号的空气过滤器有不同的标准和使用效率&#xff0c;今天利菲尔特为您介绍各种类型的空气过滤器在不同地方的应用。一般情况下&#xff0c;最末一级过滤器决定空气净化的程度&#xff0c;上游的各级过滤器只起保护作用&…

宝塔面板搭建autoPicCdn:一款基于jsdelivr-Github的免费CDN图床

autoPicCdn是白嫖Github的存储空间&#xff0c;通过jsdelivr全球加速(含有国内节点)。实现图床加速的目的。加速效果非常不错&#xff0c;用站长工具检测&#xff0c;也是一片绿油油&#xff0c;所以用来存储一些静态文件是最合适不过了。 相关文章&#xff1a;GithubjsDelivrP…

物流设计大赛优秀作品_中国外运杯第七届全国大学生物流设计大赛案例专家评审会在京召开...

2020年9月10日&#xff0c;“中国外运杯”第七届全国大学生物流设计大赛案例专家评审会在京召开。中国物流与采购联合会副会长任豪祥、中国物流与采购联合会原副会长、中国物流与采购联合会专家委员会主任戴定一、中国外运股份有限公司首席数字官高翔等有关领导及来自行业企业、…

细思极恐---十年生死两茫茫,通信人,意欲亡。

每一位通信人&#xff0c;都可能面对过来自亲友的“灵魂三问”。 “通信究竟是什么&#xff1f;” “通信从哪里来&#xff1f;” “通信要往哪里去&#xff1f;” 讲真的&#xff0c;我不知道。。。。本篇博文是模仿codesheep羊哥写的&#xff0c;因为我们都学的通信&#x…

归并排序--Java

归并排序&#xff1a; 排序原理&#xff1a; 1、尽可能的一组数据拆分成两个元素相等的子组&#xff0c;并对每一个子组继续拆分&#xff0c;知道拆分后的每个子组的元素个数是1为止。 2、将相邻的两个子组进行合并成一个有序的大组 3、不断重复步骤2&#xff0c;直到最终只…

希尔排序--Java

希尔排序 排序原理&#xff1a; 1、选定一个增量h&#xff0c;按照增长量h作为数据分组的依据&#xff0c;对数据进行分组 2、对分好组的每一组数据完成插入排序 3、减小增长量&#xff0c;最小减为1&#xff0c;重复第二步操作 其中&#xff0c;希尔排序确定增长量h的规则…