Java异常处理

一、异常分类

二、异常种类

声明式异常(自动处理异常):用throws捕捉到异常类型,将捕捉异常的任务交给xml配置文件,进行处理。

编程式异常(手动处理异常):自己try….catch掉,在这之中进行处理

三、异常解释

1Throwable

Throwable类是Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java虚拟机或者 Javathrow语句抛出。类似地,只有此类或其子类之一才可以是catch子句中的参数类型。两个子类的实例,Error Exception,通常用于指示发生了异常情况。通常,这些实例是在异常情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)

2Exception

Exception类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件,表示程序本身可以处理的异常。

3Error

ErrorThrowable 的子类,表示仅靠程序本身无法恢复的严重错误,用于指示合理的应用程序不应该试图捕获的严重问题。在执行该方法期间,无需在方法中通过throws声明可能抛出但没有捕获的 Error 的任何子类,因为Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过。

4RuntimeException

RuntimeException是那些可能在 Java虚拟机正常运行期间抛出的异常的超类。Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过,这种异常可以通过改进代码实现来避免。

5ThreadDeath

  调用 Thread 类中带有零参数的 stop 方法时,受害线程将抛出一个hreadDeath实例。仅当应用程序在被异步终止后必须清除时才应该捕获这个类的实例。如果ThreadDeath被一个方法捕获,那么将它重新抛出非常重要,因为这样才能让该线程真正终止。如果没有捕获 ThreadDeath,则顶级错误处理程序不会输出消息。虽然 ThreadDeath类是正常出现的,但它只能是 Error 的子类而不是Exception的子类,因为许多应用程序捕获所有出现的Exception,然后又将其放弃。

四、异常处理关键字

try、 catch、 finally、 throw和throws

特别注释:throwthrows关键字的区别:

throw用来抛出一个异常,在方法体内。语法格式为:throw异常对象。

throws 用来声明方法可能会抛出什么异常,在方法名后,语法格式为: throws 异常类型 1 ,异常类型 2... 异常类型 n

五、Java异常处理的原则和技巧

1、避免过大的try块,不要把不会出现异常的代码放到try块里面,尽量保持一个try块对应一个或多个异常。

2、细化异常的类型,不要不管什么类型的异常都写成Excetpion

3catch块尽量保持一个块捕获一类异常,不要忽略捕获的异常,捕获到后要么处理,要么转译,要么重新抛出新类型的异常。

4、不要把自己能处理的异常抛给别人。

5、不要用try...catch参与控制程序流程,异常控制的根本目的是处理程序的非正常情况。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值