`
剑&箫
  • 浏览: 53053 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

异常机制小结

    博客分类:
  • Java
阅读更多
什么是异常
异常是指程序运行时,可能由于外部系统的条件的变更而导致程序可能会出错的情况,如我们的代码要连结数据库,但数据库未启动,要创建目录,操作系统上却已存在同名的真实文件;即所谓异常是指可能(仅可能)由于外部系统的变更,导致程序可能出错的原因。

异常的分类
在Java中主要有两类异常,Java中定义了类java.lang.Throwable,它是使用异常处理机制可被抛出并捕获的所有异常的父类,在API中可知它有两个直接的子类,分别是Error和 Exception 。第一种表示很难恢复的错误,第二中表示运行时因环境的影响可能发生并被处理的问题。

异常机制的处理
try  catch结构的异常处理提供了这样一种机制,如果代码执行成功,程序流程正常,则catch后面的语句块不会执行;如果执行try 后面的块代码前语句出现异常,则该语句块将不会执行,程序跳到catch后面的语句块开始执行,同时catch语句块中可以得到Exception类型的变量对这个异常对象的引用,可以调用printStackTrace()方法;该方法打印出异常的详细信息;这认为程序从中恢复提供了可行的手段。需要注意的是try  catch块中变量的作用域:try块中定义的变量符合变量的作用范围的规则,即变量只能在限定自己最近的一对大括号内使用;如果方法没有定义返回值,这个方法就有可以在正常执行时有一个返回值,或在catch到的异常时有个返回值。

异常的抛出
在定义方法时,可以使用throws关键字声明方法可能会抛出异常;当另外一个方法调用了一个声明了可能抛出异常的方法时,要么将调用这个方法的代码放入try  catch 块中;要么将调用方法也抛出异常,极端的形式是每个方法都有声明为异抛出常,在调用中都不适用try  catch块,知道main函数也声明为抛出异常,一旦出错,这个异常将提交给JVM,JVM默认在控制台打印出异常信息后退出程序。如果方法体中使用throws关键字抛出一个Exception类型的对象,在方法声明中就必须使用throws关键字声明,throws后面异常类名字必须是throws抛出异常对象的类型或其父类类型。




[size=large][/size]
1
14
分享到:
评论

相关推荐

    java异常机制小结

    本资源主要描述java异常的知识,里面内容丰富,是java初学者的学习手册,java异常机制小结。

    java异常小结

    本文重在Java中异常机制的一些概念。写本文的目的在于方便大家很长时间后若是忘了这些东西可以通过这篇文章迅速回忆起来。

    零点起航Delphi7基础教程源码

    自己购买的教材 零点起航Delphi7基础教程源码 Delphi7是Inprise公司推出的面向对象的可视化编程语言,它提供...第13章 网络编程技术 13.1 网络基础知识 13.2 TCP/IP编程 13.3 使用网络函数编程 13.4 小结 参考文献

    高可用性的HDFS:Hadoop分布式文件系统深度实践

    第1章 HDFS HA及解决方案 1.1 HDFS系统架构 1.2 HA定义 1.3 HDFS HA原因分析及应对措施 1.3.1 可靠性 1.3.2 可维护性 1.4 现有HDFS HA解决方案 1.4.1 Hadoop的元数据备份方案 1.4.2 Hadoop的...8.5 小结

    php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACEeval()d code error

    syntax error, unexpected T_VAR错误解决方法PHP的异常处理类Exception的使用及说明php Try Catch异常测试PHP如何抛出异常处理错误php中异常处理方法小结PHP中的错误处理、异常处理机制分析实例讲解如何在PHP的Yii...

    程序开发原理:抽象、规格与面向对象设计.[美]Barbara Liskov(带详细书签).pdf

    4.2 Java异常机制 38 4.3 异常编程 42 4.4 设计问题 43 4.5 防御编程 46 4.6 小结 47 练习 47 第5章 数据抽象 48 5.1 数据抽象的规格 49 5.2 使用数据抽象 53 5.3 实现数据抽象 54 5.4 附加方法 59 5.5 ...

    C++编程思想习题

    1.7小结 第2章 数据抽象 2.1声明与定义 2.2一个袖珍C库 2.3放在一起:项目创建工具 2.4什么是非正常 2.5基本对象 2.6什么是对象 2.7抽象数据类型 2.8对象细节 2.9头文件形式 2.10嵌套结构 2.11小结 2.12练习 第3章 ...

    TCPIP详解--共三卷

    1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU...

    C#与.NET3.5高级程序设计(第4版) 中文1

    1.14 小结 26 第2章 构建C#应用程序 27 2.1 NET Framework 3.5 SDK的作用 27 2.2 用csc.exe构建C#应用程序 28 2.3 使用TextPad构建.NET应用程序 32 2.4 使用Notepad++构建.NET应用程序 35 2.5 使用...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    网络编程教程,很好的一本写linux网络编程书,这是我上传的源码

    第一篇 基础知识篇  第一章 文件系统和进程系统  1.1 文件系统  1.1.1 文件系统的总体结构  1.1.2 文件结构和目录结构  1.2 文件系统的相关编程  1.3 进程系统  1.3.1 进程的概念... 本章小结

    突破程序员基本功的16课.part2

    1.3 小结 第2课 对象与内存控制 2.1 实例变量和类变量 2.1.1 实例变量和类变量的属性 2.1.2 实例变量的初始化时机 2.1.3 类变量的初始化时机 2.2 父类构造器 2.2.1 隐式调用和显式调用 2.2.2 访问子类对象...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    1.5小结 第2章程序设计基础:变量及其运算 2.1认识变量 2.1.1变量的定义 2.1.2变量有哪些类型 2.2如何使用变量 2.2.1如何使用整型变量 2.2.2如何使用浮点型变量 2.2.3如何使用字符型变量 2.2.4如何使用布尔...

    《深入理解Android》卷Ⅰ

    第1章 阅读前的准备工作 1.1 系统架构 1.1.1 Android系统架构 1.1.2 本书的架构 1.2 搭建开发环境 1.2.1 下载源码 1.2.2 编译源码 1.3 工具介绍 1.3.1 Source Insight介绍 1.3.3 Busybox的使用 ...10.5 本章小结

Global site tag (gtag.js) - Google Analytics