Java(异常处理篇)

1、什么是异常?

程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。

Java标准库内建了一些通用的异常,这些类以Throwable为顶层父类。Throwable派生出Error类和Exception类。

Error:Error类以及它的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现,一旦出现Error程序就挂了,最常见的就是OutOfMemoryError,StackOverFlowError,UnknownError。

Exception:Exception以及它的子类,代表程序运行时发生的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。

异常也可以分为两类:非检查异常,检查异常。

非检查异常:Error和RuntimeException以及它们的子类。Javac在编译时,不会提示和发现这样的异常,不要求程序处理这些异常。如:ArithmeticException,ClassCastException,ArrayIndexException,NullPointException。

检查异常:除了Error和RuntimeException的其他异常。javac强制要求程序员为这样的异常做预备处理工作(使用try...catch...finally或者throws)。如:SQLException,IOException,ClassNotFoundException。

对于检查和非检查是对于Javac来说的。

2、try,catch,finally,throw,throws介绍。

try后紧跟一个花括号括起来的代码块(花括号不可以省略),简称try块。catch后对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块。catch块后可以跟finally块,用于处理try块打开的物理资源,异常机制会保证finally块总被执行。throws关键字主要用在方法签名上。throw可以作为单独语句使用,抛出一个具体的对象。

注意:

  • 不管程序代码块是否处于try块中,甚至包括catch块中的代码,只要执行该代码块时出现异常,系统会自动生成一个异常对象。如果程序没有为这段代码定义任何的catch块,则Java运行环境无法找到处理该异常的catch块,程序就在此退出。
  • try块里声明的变量是代码块内的局部变量,它只在try块内生效,在catch中不能访问。
  • 在异常捕获时,不仅应该把Exception类对应的catch块放在最后,而且所有的父类异常catch块都应该排在子类的异常catch块的最后面(简称:先处理小异常,再处理大异常),否则将出现编译错误。
  • 除非在try块、catch块中主动调用了退出虚拟机的方法,否则不管在try块、catch块中执行怎样的代码,出现怎样的情况,异常处理finally块总会被执行。
  • 通常在finally块中不使用return或throw语句。将会导致try块和catch块中的return、throw语句失效。

 

3、异常处理规则

一般异常处理有四个目标:

  • 使程序代码混乱最小。
  • 捕获并保留诊断信息。
  • 通知适合的人员。
  • 采用合适的方式结束异常活动。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值