一、什么是异常处理

在程序运行过程中发生的、会打断程序正常执行的事件称为异常(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. URL重写无效

    在IIS7或以上版本中使用urlrewriter时会出现无效的现像,这时候需要使用以下设置

  2. java类,接口浅谈

    一般类,抽象类,接口的使用场景: 类;共同的特征和行为的抽取和封装 接口:标准,规范(功能的扩展)         需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口   内部类: ...

  3. PAT (Basic Level) Practise 1045 快速排序(离散化+主席树区间内的区间求和)

    1045. 快速排序(25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 著名的快速排序算法里有一个经典的划分 ...

  4. mysql 查询成本

    SELECT SQL_NO_CACHE spu from dp_distributor_products_1_online where dpId > 15 AND dpId <= 60; ...

  5. angular前端开发环境

    1.代码编辑工具 webstorm 2.断点调试工具 chrome插件Batarang 3.版本管理工具 git(仅仅是命令行工具) git小乌龟--tortoisegit(图形化工具) 首先在git ...

  6. QtAlgorithms

    qSort() qCopy() qFill() #include <QCoreApplication> #include<QDebug> #include<QVector ...

  7. QList

    #include <QCoreApplication> #include<QList> #include<QDebug> int main(int argc, ch ...

  8. 怎样使java程序减少内存占用(转载)

    本文收集网上关于减少java程序占用的一些小知识点 (1)别用new Boolean(). 在很多场景中Boolean类型是必须的,比如JDBC中boolean类型的set与get都是通过Boolea ...

  9. as3绕过策略文件给视频截图

    接上篇 http://www.cnblogs.com/DarkMaster/p/5973593.html 这篇同样是在老外博客上找到的,分享给大家,再次感叹老外牛逼啊. 原文地址:http://gam ...

  10. Python开发程序:生产环境下实时统计网站访问日志信息

    日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他 ...