一、什么是异常处理

在程序运行过程中发生的、会打断程序正常执行的事件称为异常(Exception),也称为例外。比如:除零溢出、数组越界、内存溢出等,这些事件的发生将阻止程序的正常运行。传统的编程语言没有异常处理机制,处理错误完全依靠程序编写者自己查找,通常是遇到错误返回一个特殊的值或者设定一个标志,并以此判断是否有错误产生,这就给程序维护带来了很大的障碍。而Java利用面向对象的方法,把异常处理固化到语言中,并把各种不同的异常分类,同时提供了良好的接口,由于Java语言中的异常处理和Java运行时的系统相关,所以它消耗内存和处理器来处理创建、抛出、捕获、处理异常等事件,如果不能合理使用就会适得其反,降低了软件的可读性和执行效率。

二、 异常处理方法
      Java语言提供了3种处理异常的方法:一种方法是使用try-catch-finally 语句实现异常处理;另一种方法是使用throw语句在方法头或者方法体内抛出异常,异常处理代码捕获这些异常。Java语言还为用户提供了定义自己异常类的方法,来满足用户处理实际问题的需要。
在使用try-catch-finally语句实现异常处理时,由于一个try子句可能产生多种不同的异常,这就需要多个catch子句来实现多异常处理机制,每一个catch子句接收和处理一个异常句柄,而针对多个catch子句,处理的原则是:
1)在多catch子句中,处理的顺序是由距离产生异常最近的、可匹配的catch代码段来处理。所谓的匹配是指catch所处理的异常类型与所生成的生成类型完全一致或是它的父类。
2)如果没有相应的异常处理,说明当前方法不能处理该异常,程序流程将会交给上层方法的try代码段进行处理,如果均不符合,则由Java虚拟机捕获并处理该异常。
3)异常处理的查找依据类型(异常与参数属于相同的异常类、异常属于参数异常的子类)匹配原则按顺序进行。在使用throw语句抛出异常时,对于含有throw语句的方法,应该在方法头定义中增加语句: throws异常类名列表,这样做的目的,主要是提醒调用该方法的其他方法,要处理和接受该方法在运行过程中可能抛出的异常。
Java 语言也提供了用户自定义异常类的方法来满足处理方面的需求,而所有用户自定义的异常类都必须是Throwable类或Exception类的子类。
程序运行中有错误是可以预料的,但却是不可避免的。当程序出现错误时,要力争允许用户排除环境错误,继续运行程序,这就是异常处理的任务和准则。Java语言提供了异常处理的内部支持,需要广大用户通过日常的反复操作来体会其更深层次的内容。

java异常处理预习的更多相关文章

  1. 札记:Java异常处理

    异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...

  2. java异常处理(父子异常的处理)

    我当初学java异常处理的时候,对于父子异常的处理,我记得几句话“子类方法只能抛出父类方法所抛出的异常或者是其子异常,子类构造器必须要抛出父类构造器的异常或者其父异常”.那个时候还不知道子类方法为什么 ...

  3. Java 异常处理

    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用System.out ...

  4. 《转载》Java异常处理的10个最佳实践

    本文转载自 ImportNew - 挖坑的张师傅 异常处理在编写健壮的 Java 应用中扮演着非常重要的角色.异常处理并不是功能性需求,它需要优雅地处理任何错误情况,比如资源不可用.非法的输入.nul ...

  5. JAVA 异常处理机制

    主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...

  6. Java异常处理和设计

    在程序设计中,进行异常处理是非常关键和重要的一部分.一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度.试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻 ...

  7. 深入理解java异常处理机制

       异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的 ...

  8. Java提高篇——Java 异常处理

    异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...

  9. java异常处理的设计

    有一句这样话:一个衡量Java设计师水平和开发团队纪律性的好方法就是读读他们应用程序里的异常处理代码. 本文主要讨论开发Java程序时,如何设计异常处理的代码,如何时抛异常,捕获到了怎么处理,而不是讲 ...

随机推荐

  1. 不能用con作为类名

    A class file was not written. The project may be inconsistent, if so try refreshing this project and ...

  2. Java图片转换为base64格式

    /** * @Descriptionmap 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 * @author temdy * @Date 2015-01-26 * @param pa ...

  3. 10款最新流行的 jQuery 插件,值得你收藏

    10款最新流行的 jQuery 插件,值得你收藏 http://www.cnblogs.com/lhb25/p/10-new-popular-jquery-plugins-check.html 你应该 ...

  4. KnockoutJS:

    一.ko对象 js对象的改变都会导致viewmodel的变化,但view不一定变化 往ko对象里面push,viewmodel的变化,引起view的变化. 往js对象里面push,model的变化引起 ...

  5. 如何用shared_ptr减少锁的争用

    在并发环境下锁的使用是家常便饭, 如何减少锁的使用是优化程序性能的一个方面. c++11里面新增了智能指针std::shared_ptr, 这个东西也许能给我们带来些启发. shared_ptr的一个 ...

  6. 然并卵,腾讯QQ认证空间又再次关闭申请

    昨天发布的腾讯QQ认证空间又开放申请的消息,此消息一放出,大家都去关注认证的事情,而马浩周发现在4月27日下午4-5点,腾讯QQ空间认证又再次关闭页面开放申请的通知,变成了以前停止审核的通知了. 可能 ...

  7. jvisualVM 分析heapdump

    代码很简单,eclipse里面设置下最大堆空间为128m,: @Test public void testOutOfMemory() { List<NewsAddDto> document ...

  8. ElasticSearch 自定义排序处理

    使用function_score进行分组处理,利用分组函数script_score进行自定义分值处理, 注意:使用script功能需要在配置中打开脚本功能: script.inline: on   s ...

  9. 带阈值的平滑l0范数加速稀疏恢复——同名英文论文翻译

    原文链接:Thresholded Smoothed l0 Norm for Accelerated Sparse Recovery http://ieeexplore.ieee.org/documen ...

  10. MySQL的几个概念:主键,外键,索引,唯一索引

    概念: 主键(primary key) 能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录的唯一和 ...