异常体系----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…

python解决最优化问题_python实现最优化算法

二分法函数详见rres&#xff0c;此代码使该算法运行了两次def asdf(x):rres8*x**3-2*x**2-7*x3return rresi2left0right1while i>0 :i i-1ans 0.1mid1 (left right ans) / 2mid2 (left right - ans) / 2aasdf(mid1)casdf(mid2)if a > c :right mid1else :left m…

为什么需要包装类?

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

python自动计算多个教学班的优秀率_第二个月课堂009python之总结(002)

python7天的总结------------------------------------------------------------------------------------------------评价&#xff1a;1、函数 def 自定义行数和内建函数2、re模块3、python3和python的去别4、字典&#xff0c;元组&#xff0c;列表&#xff0c;元组&#xf…

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

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

python loop call soon_python3-asyncio 学习笔记 1 -- call_soon

最近在学习python3 的 asyncio, 特将学习笔记记录于此.先来个简单的例子:import asynciodef hello_world(loop):print(Hello World)loop.stop()loop asyncio.get_event_loop()# Schedule a call to hello_world()loop.call_soon(hello_world, loop)# Blocking call interrupte…

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;因此效率较高。…

python背单词游戏_Python基础-背单词游戏

Hangman直译为“吊死鬼”&#xff0c;是一个猜单词的双人游戏。由一个玩家想出一个单词或短语&#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…

pythonocc 扩展数据_如何在pythonOCC中使用样条函数?

您只需将代码修改为C(而不是C)BOOST_PYTHON_MODULE(Spline){import_array();boost::python::numeric::array::set_module_and_type("numpy", "ndarray");class_("Spline", init<>()).def("spline", &Spline::spline);}因此在…

免费CDN:jsDeliver+Github使用方法

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

python 电脑显示桌面_使用Python快速实现显示器关闭和锁住桌面

现在很多公司都需要考虑节能&#xff0c;特别对电方面的节能。因此很多公司都针对电脑进行管理&#xff0c;比如当你离开电脑时&#xff0c;需要把显示器处于关闭状态&#xff0c;同时让电脑处于锁定状态&#xff0c;这样有利于节能&#xff0c;同时也能延长电脑显示器的寿命&a…

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

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

python extract的使用_Python extract及contains方法代码实例

一&#xff0c;extract方法的使用extract函数主要是对于数据进行提取。场景一般对于DataFrame中的一列中的数据进行提取的场合比较多。例如一列中包含了很长的字段&#xff0c;我们希望在这些字段中提取出我们想要的字段时&#xff0c;就可以通过extract方法进行数据的提取了。…

hexo-Fluid主题使用手册

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

怎么用python做战斗机_关于python文件操作

总是记不住API。昨晚写的时候用到了这些&#xff0c;但是没记住&#xff0c;于是就索性整理一下吧&#xff1a;python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录&#xff0c;即当前Python脚本工作的目录路径: os.getcwd()返回指定目…