问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么java中Exception的对象能够获取子类的信息.

发布网友 发布时间:2022-04-29 01:11

我来回答

3个回答

热心网友 时间:2022-06-27 06:06

首先要明白异常的抛出与捕获机制:
当我们没有在程序中主动使用throw或throws关键字抛出一个异常时,异常一般都是有JVM,即java虚拟机抛出的,我们所写try catch语句块只是用来捕获异常的。JVM在抛出这个异常信息之前会对异常做封装处理,确定异常时什么类型的异常。比如,此题JVM抛出的就是一个ArithmeticException,然后就查看程序能捕获什么类型的异常(就是catch语句块的参数),如果程序能捕获的异常类型恰好就是这种异常或者包含这个类型,就把这个异常传递给程序处理(本题中就是封装进了e对象中),以便程序能继续运行下去。要是程序没有对这种异常进行捕获或处理,程序就会报错,并终止执行。

由于Exception类是所有异常信息的父类,所以当在catch语句的参数适用Exception 时,表示该程序能够捕获任何类型的异常,当然也包括了ArithmeticException。其实,ArithmeticException是直接继承的RuntimeException,而RuntimeException才是直接继承至Exception,如果把程序中的Exception换成RuntimeException,输出结果是一模一样的。
也许说的有点绕,好好体会下。追问也就是说;我申明了这个Exception e,然后jvm检查这个异常是什么类的异常,查出后jvm自动创建了这个子类对象,使 e成为上转型对象?

追答不是,那个子类对象是JVM在异常抛出时创建的,他把这个异常封装成了一个Exception子类的对象,然后才是你说的上转型,把这个对象的赋给e。e只是一个引用,不是对象,java中允许父类的引用接收子类的对象。

热心网友 时间:2022-06-27 06:06

这个是java的多态问题,你自己随便写个 接口 or 抽象类 or 普通类,在里面定义一个方法,然后再用一个类去继承它,并且覆写里面的方法
之后用子类去创建父类对象,也就是
父类 父类对象名 = new 子类();
然后调用被覆写的方法,你看看是不是调用的子类的方法,而不是父类的

这里一个道理,Exception是java中各种异常的父类,其他各种异常都是他的子孙类,自然输出的是子类的信息追问你说的是上转型吧;
也就是说;我申明了这个Exception e,然后jvm检查这个异常是什么类的异常,查处后jvm自动创建了这个子类对象,使 e成为上转型对象?

热心网友 时间:2022-06-27 06:07

这就是java的多态表现,这个范围很大,不是三言两语说清楚的
以后你有经验了,很多东西水到渠成,自然理解了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivo闪电手柄没法一键连招 vivo闪电游戏手柄如何设置最佳_vivo闪电游戏手柄设置教程 switch跳舞的游戏叫什么 量子特攻怎么使用灌木 量子特攻量子魔方有什么用 量子技能介绍 量子特攻怎么换技能介绍_量子特攻怎么换技能是什么 量子特攻战斗中更换时装和机仆技能方法介绍 量子特攻如何设置快捷机仆技能_量子特攻设置快捷机仆技能方法介绍_百度... 换新显卡,显示器不亮!DVI-D无信号 怎么回事大佬棒棒忙? 求大佬带飞,电脑相关问题 java如何获得继承父类的子类并把它保存在数组中 java能不能通过接口或父类获取所有的实现类和子类。就是在不知道子类和实现类的名字的情况下通过接口 java中父类如何得到子类的对象 小宝宝七个月了,发烧反复怎么办? 为什么我买不了300104股票 【java】如何 获取 抽象类的 所有实现类? 七个月宝宝发烧怎么办? java 如果查看一个接口 的所有子类? 我买的股票退市了,为什么我软件持仓里没有这个股票了?在线等答案 七个月的宝宝感冒发烧应该怎么办呢? 乐视网再涨停幕后推手浮出了吗? 父类获取子类类型 java java 类的继承,子类变量的获取 java 父类如何在运行期动态获取子类类名 七个月大的宝宝发烧怎么办 lg无线蓝牙颈挂式耳机说明书 java中一个 类.class 发法 获取的描述类的对象,是 否 可以找到其 所有的子类 的名称? 日报5.12|宁德时代研发无钴电池/乐视网或退市老三板/力帆内讧 请问java中有没有方法可以遍历一个父类的所有子类啊? 中国证券会对乐视网(300104)股民持股卖不悼,损失怎么办?股民悼泪。 Java面试题:获得一个类的类对象有哪些方式 Java 子类继承父类,子类重写父类方法,这种情况下父类可以获取到子类的数据吗? Java中一个父类可以有多个不同的子类吗 java中所有类都是Object的子类吗? 谁能给我讲讲==和equals的区别? 还有equals为什么在String类型中比较 我想做鸡蛋饼夹土豆丝买求做法 鸡蛋灌饼把土豆丝可以换成什么菜 鸡蛋灌饼里加的土豆丝的放其它的调味吗? 土豆丝加鸡蛋饼怎么做 黄芪泡水喝是不是不合适? 91连接服务在哪里下载有? 91到底如何连接? 安卓手机怎么连接91助手 91手机助手怎么连接手机? [求助]91连接手机电脑 新手请教:91一直是“”正在初始化连接“怎么办 91手机助手如何连接手机? 91助手无法连接手机 苹果手机连接不上91手机助手 公务员退休工龄怎么计算l? iphone如何用91助手连接