`
Vicent_Lee
  • 浏览: 56219 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

异常的最终去向是哪里?

阅读更多

 

什么是异常:程序在运行过程中发生由于硬件设备问题、软件设计错误等导致的程序异常事件。异常本身是一个对象,产生异常就是产生了一个异常对象。异常都是从类Throwable派生出来。包括运行时异常和飞运行时异常。(这个多说无益,知道怎么处理就行)

 

如何产生的:是由系统自动实例化一个异常对象。那这里的系统指的就是JVM。当然、我们可以自己new一个异常对象将其抛出。

 

自定义异常:可以通过继承Exception或者其子类。

 

如何处理异常:通过try…catch…finally语句进行捕获异常。当然也可以不处理异常、通过关键字throws继续传递异常。注:没有try块、catch不能单独存在。Finally块永远都执行、除非你在catch块中退出系统(System.exit(0))try块中只有return并不能终止finally块的执行。RuntimeException的任何子类都无需再throws子句中声明。

 

异常传递:当我们不对产生的异常做任何处理、那么这个异常何去啊?它会向它的调用者传递这个异常。

 

方法调用栈:在程序中、没有说一个方法就像全部的东西的实现、而是充分的独立、一个方法处理一件事情、那么如果我有一个方法、需要使用另一个方法的处理结果、那么我没就在这个方法中调用另一个方法(如何调用?自己想)、这就是方法调用栈、通过这个“栈“,我们就知道它是什么特性了(后进先出)、

 

问:如果产生一个异常、不对进行任何处理、这个异常最终会抛向哪里?

解析:通过上面的提示、知道方法调用栈的存在、那么这个异常的产生肯定是在在方法调用栈的栈顶的那个方法、当然我们在看控制台抛出的是异常栈、如果我们不对其进行处理、那么它会继续向下抛(栈的特性)、一次都不对其处理、最后会抛到这个栈的栈底、就是程序的起始位置、那么一个java程序的入口地址是哪里呢?main方法、对、就是这、

 

问:那如果是J2EE应用呢?异常抛向哪里?前提也是不对其进行任何处理。

求解!

 

 

挺有意思的文章:http://www.iteye.com/topic/765287

透过JVM看Exception的本质:http://www.iteye.com/topic/857722

J2EE项目异常处理:http://www.iteye.com/topic/72170

译JVMS3 §2.10 Exceptionhttp://www.iteye.com/topic/1039883

异常处理艺术:http://zhxing.iteye.com/blog/374307

分享到:
评论
7 楼 Vicent_Lee 2011-05-11  
cleverbing 写道
这个论坛会员的头像,真有意思,不是美腿,就是美胸!!真受不了!

说实话、你的头像更让人受不了   起始头像都是无所谓了、主要还是要有钻研的气氛、学习气氛浓厚才是目的、头像给不给里都是小事
6 楼 cleverbing 2011-05-11  
这个论坛会员的头像,真有意思,不是美腿,就是美胸!!真受不了!
5 楼 Vicent_Lee 2011-05-11  
如果一个异常是致命的,不可恢复的。或者调用者去捕获它没有任何益处,使用unChecked异常。
如果一个异常是可以恢复的,可以被调用者正确处理的,使用checked异常。
在使用unChecked异常时,必须在在方法声明中详细的说明该方法可能会抛出的unChekced异常。由调用者自己去决定是否捕获unChecked异常
4 楼 Vicent_Lee 2011-05-11  
gzyyygyf 写道
java程序由JVM掌控,异常也不例外,JVM收到异常就会中断线程的执行

就是说、当这个异常产生了、异常被抛到异常栈的底部调用者、如果这个调用者同样没有处理、拿着个异常会抛给JDK/JRE的JVM、JVM会终止这个异常线程的执行、是这么一个过程吧、
那这个异常会不会对Tomcat有影响呢?   小弟现在也糊涂了、天天都要上班、学校还一堆毕业的事情、毕业设计到现在还没着落呢、哎、  
3 楼 gzyyygyf 2011-05-10  
java程序由JVM掌控,异常也不例外,JVM收到异常就会中断线程的执行
2 楼 Vicent_Lee 2011-05-10  
IcyFenix 写道
如果依次搜索栈中各个方法的异常表,都没有找到合适的exception handler,那这个异常最终会导致线程退出。

JVMSpec 2 写道
The process continues until a catch clause (§2.16.2) is found that handles the thrown value. If no such clause can be found, the current thread exits

也就是说、搜索这个异常栈、直到起初调用者的线程被终止、
这是我以前面试的时候一个技术人员问一个说有两年工作经验的人的问题、我一直认为都是谁调的抛给谁、但是这个异常传递的终点一直不清楚、肯定不是控制台或者错误输出文件、因为这些都是输出异常信息的地方、
1 楼 IcyFenix 2011-05-10  
如果依次搜索栈中各个方法的异常表,都没有找到合适的exception handler,那这个异常最终会导致线程退出。

JVMSpec 2 写道
The process continues until a catch clause (§2.16.2) is found that handles the thrown value. If no such clause can be found, the current thread exits

相关推荐

    (检验科)医疗废物收集交接登记表.doc

    - 在登记表中记录最终去向,有助于追踪废物处理的全过程,防止非法处理。 5. **备注**: - 这一栏用于记录任何特殊情况,比如废物超量、特殊处理需求或异常事件,确保所有相关信息都被记录下来。 医疗废物的管理...

    医疗废物收集交接登记表.pdf

    表格中的“最终去向”一栏用于记录废物的处理情况,如焚烧、填埋或其他安全处理方式。 6. **监督与签名**:在交接过程中,除了收集和接收人员的签名外,还需要监督人的签名,以确保整个流程的透明度和合规性,防止...

    危险废物接收入库管理制度.pdf

    IQC进行形态和包装检查,判定去向并取样分析;仓管员最终确认入库,监督卸货过程。 - **废物入库**:仓管员填写物料卡、标签、手工台账等,物控员在系统中办理入库,记录管理需按规范化要求存档。 5. **相关文件**...

    成品检验报告 空白.doc

    - 客户订单号码:关联到具体的销售订单,便于了解产品的最终去向和需求。 - 检验日期:记录检验的具体时间,确保信息的时效性。 - 品名与规格:描述产品的具体类型和尺寸,确保检验符合产品特性。 - 订单数量与...

    软件工程需求分析概述.pdf

    6. 错误处理需求:定义系统在面对错误或异常情况时的响应方式,以保证系统能够正确处理异常,防止数据丢失或系统崩溃。 在进行需求分析时,通常会采用以下方法: - 访谈:通过与用户进行正式或非正式的交谈,了解...

    2021-2022计算机二级等级考试试题及答案No.2735.docx

    15. **题目内容**:“查询”菜单下的“查询去向”命令指定了查询结果的输出去向,输出去向不包括? - A. 报表 - B. 标签 - C. 文本文件 - D. 图形 **正确答案**:C **解析**: - 查询结果可以输出到报表、...

    山东省临沂市罗庄区2013届九年级生物一轮验收试题 新人教版

    11. 氧的最终去向:人体吸收的氧气主要用于氧化分解有机物,释放能量,因此C选项正确。 12. 血液成分分析:根据表格数据,1是尿液,因为其中蛋白质和葡萄糖含量为0,尿素含量高。 13. 视觉形成过程:光线依次经过...

    山东省吕标初中2020学年七年级生物下学期第一次月考试题(无答案) 新人教版.doc

    21. 人体吸收的氧最终去向:人体吸收的氧主要用于氧化分解有机物,释放能量供生命活动使用。 以上是对试题内容涉及知识点的详细解析,涵盖了生物课程中的基础营养、消化系统、呼吸系统、新陈代谢等多个方面。

    成品检验汇总表.doc

    《成品检验汇总表》是质量管理中的重要工具,主要用于记录和分析产品的最终检查结果,确保出厂产品的质量符合标准。这份文档通常包含多个关键组成部分,旨在提供一个全面、系统的方式来跟踪和控制生产过程中的品质...

    银行存款收支日报表(表格模板、DOC格式).doc

    3. **票据号码**:对于涉及支票或电子转账等非现金支付方式的交易,票据号码是确认交易的重要依据,能帮助财务部门跟踪资金的去向。 4. **摘要**:摘要部分简明扼要地描述了交易的内容,例如“销售收入”、“采购...

    2021-2022计算机二级等级考试试题及答案No.14070.docx

    4. C++源程序文件的默认扩展名为`.cpp`,编译后生成的目标文件扩展名为`.obj`,最终链接生成可执行文件的扩展名通常是`.exe`。 5. 对于面向对象编程,类C中的实例方法是可以被子类覆盖的,这是多态性的体现。选项A...

    安徽省阜阳市第九中学2015_2016学年七年级生物下学期期末考试试题.doc

    14. 氧气的最终去向:氧气最终在细胞内参与氧化分解有机物,释放能量(题目中的第十五题)。 15. 呼吸运动:图中甲表示吸气,膈肌收缩;乙表示呼气,膈肌舒张(题目中的第十六题)。 16. 呼吸系统健康:森林公园内...

    制造过程记录单.doc

    每个工序都有其特定的任务和目标,确保产品从原材料转化为最终成品。而“上道工序名称”和“下道工序名称”则明确了工序之间的逻辑关系,前一工序的产出是后一工序的输入,形成有序的生产流程。 “要求完工时间”是...

    2008年研究生数学建模c题

    - **作业流程**:车辆根据货物去向解体、集结、编组,最终形成新列车待发,整个过程需控制在一定时间内,以保持高效运转。 #### 知识点八:限制条件与目标指标 - **重量与长度限制**:每辆重车不超过80T,列车总...

    生产用料记录单.doc

    1. **物料管理**:物料管理是企业运营的核心部分,包括采购、存储、发放和跟踪原材料,以及中间产品和最终产品的过程。有效的物料管理能提高生产效率,减少浪费,降低库存成本。 2. **生产状况记录**:生产用料记录...

    材料提交日报表模板.doc

    首先,报表的日期部分是记录每日提交情况的基础,年、月、日的填写有助于追踪和分析物料流动的时间序列数据,从而发现规律或异常,及时调整采购策略。例如,通过分析历史数据,可以预测未来的物料需求高峰期,提前...

    公司可视化办法.doc

    总的来说,公司可视化办法是通过视觉工具和系统化的方法,提升企业管理水平,降低错误率,增强安全意识,优化工作流程,最终提高整体生产力和质量。通过实施这些模块,企业可以创建一个更加透明、有序的工作环境,...

    数据挖掘在研究生教育管理信息系统中的应用.pdf

    数据挖掘的任务可以分为关联分析、聚类分析、分类分析、异常分析、特异群组分析和演变分析等。其中,聚类分析法是将对象集合分成由相似对象组成的多个类的过程,常用的算法包括划分法、层次法、基于密度的方法、基于...

Global site tag (gtag.js) - Google Analytics