永发信息网

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

答案:3  悬赏:80  手机版
解决时间 2021-02-04 21:19
如:
try{
int i=9;
i/=0;
}catch(Exception e){
System.out.println(e.getClass()+“ ”+e.getMessage())
}
会输出 class:AmethticException /by zero
最佳答案
首先要明白异常的抛出与捕获机制:
当我们没有在程序中主动使用throw或throws关键字抛出一个异常时,异常一般都是有JVM,即java虚拟机抛出的,我们所写try catch语句块只是用来捕获异常的。JVM在抛出这个异常信息之前会对异常做封装处理,确定异常时什么类型的异常。比如,此题JVM抛出的就是一个ArithmeticException,然后就查看程序能捕获什么类型的异常(就是catch语句块的参数),如果程序能捕获的异常类型恰好就是这种异常或者包含这个类型,就把这个异常传递给程序处理(本题中就是封装进了e对象中),以便程序能继续运行下去。要是程序没有对这种异常进行捕获或处理,程序就会报错,并终止执行。

由于Exception类是所有异常信息的父类,所以当在catch语句的参数适用Exception 时,表示该程序能够捕获任何类型的异常,当然也包括了ArithmeticException。其实,ArithmeticException是直接继承的RuntimeException,而RuntimeException才是直接继承至Exception,如果把程序中的Exception换成RuntimeException,输出结果是一模一样的。
也许说的有点绕,好好体会下。
全部回答
在调用方无权需要访问资源时,引发 securityexception 异常。例如在开发桌面辅助b/c程序, ui操作直接修改注册表, 可是当前用户是来宾用户登录,没有修改注册表的权限, 这时候就会触发securityexception
这个是java的多态问题,你自己随便写个 接口 or 抽象类 or 普通类,在里面定义一个方法,然后再用一个类去继承它,并且覆写里面的方法 之后用子类去创建父类对象,也就是 父类 父类对象名 = new 子类(); 然后调用被覆写的方法,你看看是不是调用的子类的方法,而不是父类的 这里一个道理,Exception是java中各种异常的父类,其他各种异常都是他的子孙类,自然输出的是子类的信息
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
奇数,偶数,那个是单数?那个是双数?本人忘
武林外传棉布,木棉布,粗皮都分别到哪里打?
顺兴驾校(衡水深州)地址好找么,我有些事要过
电父的意思是什么啊?知道的请说下!
动漫KANON大结局。
我与爱在一个屋檐下作文如:我生病了 妈妈带
z53次列车15车厢109号靠窗吗
名流酒家怎么去啊,有知道地址的么
王叔叔步行速度是5千米每时,张老师步行的速度
真空包装酱板鸭怎么吃
南斯拉夫5第纳尔钢币值多少人民币
翠玉白菜阅读答案
南北司的意思是什么啊?知道的请说下!
新装空调第一次开机设置
宣传物料、礼品等陈列摆放时不得()通道。
推荐资讯
德江县黔汇货运信息部怎么去啊,我要去那办事
黎家坝地址有知道的么?有点事想过去
16gtf卡是什么?
具有抗尿崩症作用的药物是A.氢氯噻嗪B.呋塞米
星期六在自动取款机跨行到工商银行转账什么时
有一台内阻为1 Ω的太阳能发电机.供给一个学
用iPhone SE登录手机QQ显示什么在线呢?有用
山东财经大学自考本科好考过吗?
黑龙江天也律师事务所地址在哪,我要去那里办
有人说,城市在将来有可能被海水淹没,成为海
区域间的经济要素是相互联系的,如发达地区可
佛教用语 宏宗演教 是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?